[FFmpeg-devel] Evolution of lavfi's design and API

Paul B Mahol onemda at gmail.com
Tue Aug 30 16:48:51 EEST 2016


On Tuesday, August 30, 2016, Nicolas George <george at nsup.org> wrote:

> Le duodi 12 fructidor, an CCXXIV, Paul B Mahol a écrit :
> > Nicolas, what is status of this?
> >
> > I'm currently interested in frame multithreading in lavfi.
>
> I am currently locked on a patch series to replace the recursive calls to
> filter_frames() with a FIFO on each link.
>
> I think this is an absolute necessity before considering inter-filter
> multithreading.
>
> Unfortunately, this is very tricky business because the filters'
> implementation are not ready for it. Filters must be activated, by actually
> calling their filter_frame() methods, when a frame is available, but not
> repeatedly so when they can not perform any work, but they often provide no
> visible test for that. Plus, the global API for activating a filtergraph
> was
> not designed with that kind of working in mind.
>
> I have made significant progress in the last weeks. I think I have got the
> propagating of frames working, and the propagating of EOF conditions on
> 1-to-1 filters too, but there is still an issue with filters with multiple
> inputs.
>
> I could post the whole patch as is at any time, but I do not think it would
> do much good as is.
>
>
the filter frame multithreading would just internally, in filter context
cache frames, once enough frames are in cache - call workers and be done,
repeat. At eof call workers on remaining frames in cache.


More information about the ffmpeg-devel mailing list