[FFmpeg-devel] ABI (in)stability of FFmpeg (was: Re: [PATCH 1/4] swr: convert resample_common/linear_int16_mmx2/sse2 to yasm.)

Michael Niedermayer michaelni at gmx.at
Fri Jul 25 22:06:14 CEST 2014

On Fri, Jul 25, 2014 at 03:55:51PM +0200, Andreas Cadhalpun wrote:
> Hi,
> On 12.07.2014 20:34, Timothy Gu wrote:
> >So, ff_ = can only be used within this library (in theory) and can be
> >removed without major bump. It should not be exported or be used by users.
> >
> >avpriv_ = can only be used by FFmpeg libraries and cannot be removed
> >without major bump. It should be exported, but should not be used by users.
> >
> >Other av* = can be used by everyone, and are exported and have proper
> >prototypes or declarations in headers.
> >
> >Right now, some libraries export some ff_ symbols as hacks and should be
> >fixed by either converting them to avpriv_ or av_. libavutil exports all
> >ff_ symbols until the next bump.
> That's how the theory goes...
> ...would be nice if it worked that way in practice.
> I'm talking about commit 3a2d1465c88625774530399b06dc4d48b24bb51f:
> Merge commit '2d60444331fca1910510038dd3817bea885c2367'
> * commit '2d60444331fca1910510038dd3817bea885c2367':
>   dsputil: Split motion estimation compare bits off into their own context
> Libav renamed ff_dsputil_init to ff_me_cmp_init. That's fine there,
> because they don't export the symbol.
> The problem is that FFmpeg did, and also the aliases dsputil_init
> and avpriv_dsputil_init, because some filters included
> libavcodec/dsputil.h. Now they include libavcodec/me_cmp.h and
> libavcodec exports ff_me_cmp_init.
> According to above theory such a change requires a soversion bump...

patch posted which reintroduces avpriv_dsputil_init() and should thus
fix this


Michael     GnuPG fingerprint: 9FF2128B147EF6730BADF133611EC787040B0FAB

Dictatorship naturally arises out of democracy, and the most aggravated
form of tyranny and slavery out of the most extreme liberty. -- Plato
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 181 bytes
Desc: Digital signature
URL: <https://ffmpeg.org/pipermail/ffmpeg-devel/attachments/20140725/8dadfd62/attachment.asc>

More information about the ffmpeg-devel mailing list