[FFmpeg-devel] [PATCH 1/2] libavfilter: Support the forks ABI for buffer sinks

Stefano Sabatini stefasab at gmail.com
Sat Sep 1 01:02:57 CEST 2012


On date Saturday 2012-09-01 00:04:12 +0200, Michael Niedermayer encoded:
> On Fri, Aug 31, 2012 at 11:44:50PM +0200, Stefano Sabatini wrote:
> > On date Friday 2012-08-31 22:38:29 +0200, Michael Niedermayer encoded:
> > > With this change avconv compiled against libav and linked to ffmpegs libs
> > > will run through the whole fate testsuite without any crashes.
> > > 857 tests pass, the remaining tests fail one way or another, which is
> > > to be expected as avconv is not a drop in replacement for ffmpeg
> > > The testsuite used was the ffmpeg fate testsuite, not libavs.
> > > 
> > > Signed-off-by: Michael Niedermayer <michaelni at gmx.at>
> > > ---
> > >  libavfilter/allfilters.c  |    6 ++++++
> > >  libavfilter/buffersink.c  |    8 ++++++++
> > >  libavfilter/sink_buffer.c |   39 ++++++++++++++++++++++++++++++++++++---
> > >  3 files changed, 50 insertions(+), 3 deletions(-)
> > > 
> > > diff --git a/libavfilter/allfilters.c b/libavfilter/allfilters.c
> > > index 9e68d4c..6842ec9 100644
> > > --- a/libavfilter/allfilters.c
> > > +++ b/libavfilter/allfilters.c
> > > @@ -64,8 +64,11 @@ void avfilter_register_all(void)
> > >      REGISTER_FILTER (ANULLSRC,    anullsrc,    asrc);
> > >      REGISTER_FILTER (FLITE,       flite,       asrc);
> > >  
> > 
> > > +#if !AV_HAVE_INCOMPATIBLE_FORK_ABI
> > >      REGISTER_FILTER (ABUFFERSINK, abuffersink, asink);
> > > +#endif
> > 
> > After musing a few minutes I have to conclude that I'm lost at
> > correctly interpreting this:
> > INCOMPATIBLE (FORK ABI) => support the fork ABI, which is incompatible 
> > or
> > (INCOMPATIBLE FORK) ABI => support the ABI of the incompatible fork
> > 
> > From my understanding abuffersink is compiled only if has not an
> > incompatible (i.e. has a compatible) fork ABI, otherwise only
> > ffabuffersink (ff* version) is compiled in.
> 
> ffabuffersink is always available under the ffabuffersink name
> 
> by default ffabuffersink is also available under the abuffersink name
> as this was what it was previously
> 

> but if AV_HAVE_INCOMPATIBLE_FORK_ABI is set then instead the variant
> from libav is available under the abuffersink name.

Got it.

Anyway I still think that "INCOMPATIBLE_FORK_ABI" is confusing and
should be changed (incompatible with what?, which fork??). No need to
do this in this patch of course.

[...]

Looks good to me, thanks.
-- 
FFmpeg = Fundamentalist and Friendly Most Philosofic Ephemeral Geisha


More information about the ffmpeg-devel mailing list