[FFmpeg-devel] pipeline multithreading
Daniel Oberhoff
danieloberhoff at gmail.com
Tue Nov 25 10:01:43 CET 2014
Von meinem iPhone gesendet
> Am 24.11.2014 um 17:16 schrieb Reimar Döffinger <Reimar.Doeffinger at gmx.de>:
>
>> On Mon, Nov 24, 2014 at 12:35:58PM +0100, Daniel Oberhoff wrote:
>> inout -> filter1 -> filter2 -> output
>>
>> some threads processing frame n in the output (i.e. encoding), other threads procesing frame n+1 in filter2, others processing frame n+2 in filter1, and yet others processing frame n+3 decoding. This way non-parallel filters can be sped up, and diminishing returns for too much striping can be avoided. With modern cpus scaling easily up to 24 hardware threads I see this as neccessary to fully utilize the hardware.
>
> Keep in mind the two things:
> 1) It only works for cases where many filters are used, which is not
> necessarily a common case
Also, not quite. Even just decode/encode had a pipeline depth of 2 (the decoder could decode frame n+1 while the encoder encodes frame n). Every filter deepens this more...
More information about the ffmpeg-devel
mailing list