[Libav-user] Problems with ffvhuff and huvvyuv

James Board jpboard2 at yahoo.com
Thu Oct 17 21:31:21 CEST 2013


>What you're describing 
sounds like the multithreading approach that ffmpeg uses. My 
>understanding: The first decode call starts a decode action which spawns a thread to >decode that frame. Each subsequent decode call starts a new action/thread, until you run >out of threads, at which point the next 
decode action will return the frame that you started >decoding in the 
first call. That's why you have to look at the frame number of the 
decoded >frame, not of the packet you passed in. Maybe you also get a 
frame back if it's 'ready' - >not sure.
>

>Note - this means you always have to run decode a few extra times with a null packet to >get the frames flushed out.

That explains it 100 percent.  When I ran this code on a 6-core machine (12
virtual cores), it seemed to generate an extra 12 frames.  When I ran on a 2-core
machine, it generated 4 extra frames.  When I recoded things so I didn't compare
the frame I asked for and the frame that was returned, then the problem went away.

So the question becomes: How can I turn off this behavior?  I want to run multiple
instances of my program so I don't want it using all the available cores anyway.
If I can't turn it off through the API, can I hack something in the code to turn this
off, or maybe limit it?
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://ffmpeg.org/pipermail/libav-user/attachments/20131017/2f222677/attachment.html>


More information about the Libav-user mailing list