[FFmpeg-devel] [PATCH] avutil/WIP: add AVAsync API

wm4 nfxjfg at gmail.com
Fri Nov 13 16:04:56 CET 2015


On Fri, 13 Nov 2015 15:57:22 +0100
Nicolas George <george at nsup.org> wrote:

> Le primidi 21 brumaire, an CCXXIV, Clement Boesch a écrit :
> > You construct something like this:
> > 
> >   AVAsyncContext(
> >     AVAsyncReader(
> >       AVAsyncDecoder(...),
> >       AVAsyncDecoder(...),
> >       AVAsyncDecoder(...),
> >       ...
> >     ),
> >     AVAsyncReader(
> >       AVAsyncDecoder(...),
> >       AVAsyncDecoder(...),
> >       ...
> >     ),
> >     ....
> >   )  
> 
> Is there a specific reason you use a different type for decoders and
> readers? If I understand correctly, readers would be demuxers, and
> basically, if you look from high enough, demuxers and decoders are basically
> the same.
> 
> Actually, I think we already have the framework for a high-level
> optionally-asynchronous API: libavfilter. Of course it is far from ready for
> it, but the basic principles are sound.

libavfilter is too inflexible, brittle, monolithic. There's nothing
asynchronous about it either. I also want to see how you'd do global
format negotiation when you add subtitles, demuxers, muxers etc.

The basic idea you have is right (and the same thing more general media
frameworks do, like dshow, gstreamer, etc.), but I suggest you design a
new sub-library from scratch for this.


More information about the ffmpeg-devel mailing list