[FFmpeg-devel] [PATCH][RFC] avcodec: disallow hwaccel with frame threads

wm4 nfxjfg at googlemail.com
Wed Jan 20 10:11:50 CET 2016


On Tue, 19 Jan 2016 23:54:48 +0100
Andreas Cadhalpun <andreas.cadhalpun at googlemail.com> wrote:

> On 19.01.2016 21:46, wm4 wrote:
> > On Tue, 19 Jan 2016 21:31:19 +0100
> > Hendrik Leppkes <h.leppkes at gmail.com> wrote:  
> >> On Tue, Jan 19, 2016 at 9:27 PM, Andreas Cadhalpun
> >> <andreas.cadhalpun at googlemail.com> wrote:  
> >>> On 19.01.2016 21:22, Hendrik Leppkes wrote:    
> >>>> On Tue, Jan 19, 2016 at 9:13 PM, Andreas Cadhalpun
> >>>> <andreas.cadhalpun at googlemail.com> wrote:  
> >>>> They don't lack time, they lack understanding of the flaws in the system.    
> >>>
> >>> How can you know that?    
> >>
> >> Because I read the ticket, which says he doesn't want to do it, not
> >> that he doesn't have time to do it, and because I know that particular
> >> person and his attitude.  
> > 
> > It was discussed to death on #libav-devel too.  
> 
> And the conclusion was to allow hwaccel with frame threads?

From what I remember, the VLC developer in question showed no
interest in suggesting a proper solution.

> >> Its fundamentally broken, and making it a warning would re-introduce
> >> known crashes. So no.  
> > 
> > +1  
> 
> Can the crashes be reproduced with VLC?
> If so, are they reported in the VLC bug tracker?

(I don't know the dxva bug tracker.)

> > There was this idea that this could be fixed by having some sort of
> > wrapper decoder, which could take care of the fallback transparently
> > and without getting into these nasty threading issues. But no idea how
> > much work that would be.  
> 
> Can't the framework just ignore the threading setting when using a hwaccel?

The problem is software fallback. If you run decoding with hwaccel and
1 thread, and then fallback to software decoding, you can't just
increase the number of threads of the open context.

This is why other hwaccel users simply recreate the decoder context
(and it works great). VLC could perhaps easily change their code to do
this. I'm quite surprised the developer seems to prefer to play such
games, instead of at least suggesting a solution or even just asking
the ffmpeg project for a revert.

I think it was mentioned that some newer hwaccels (VP9?) make it even
harder to somehow keep multithreaded hwaccels working, which is why
running with threading was disabled now. Hendrik can provide a better
explanation.


More information about the ffmpeg-devel mailing list