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

Michael Niedermayer michaelni at gmx.at
Sat Sep 1 02:26:02 CEST 2012


On Sat, Sep 01, 2012 at 01:02:57AM +0200, Stefano Sabatini wrote:
> 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.

its incompatible with our ABI
there can be just one "buffersink", its either ours or antons
and applications compiled against either will not work when they
end up requesting "buffersink" and getting the other

[...]

-- 
Michael     GnuPG fingerprint: 9FF2128B147EF6730BADF133611EC787040B0FAB

It is what and why we do it that matters, not just one of them.
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 198 bytes
Desc: Digital signature
URL: <http://ffmpeg.org/pipermail/ffmpeg-devel/attachments/20120901/30f8d07b/attachment.asc>


More information about the ffmpeg-devel mailing list