[FFmpeg-devel] [PATCH 1/4] swr: convert resample_common/linear_int16_mmx2/sse2 to yasm.

Andreas Cadhalpun andreas.cadhalpun at googlemail.com
Sat Jul 12 21:26:05 CEST 2014


On 12.07.2014 20:51, Hendrik Leppkes wrote:
> On Sat, Jul 12, 2014 at 8:42 PM, Andreas Cadhalpun
> <andreas.cadhalpun at googlemail.com> wrote:
>>
>>
>> OK, so either of us misunderstood what Hendrik wrote:
>> "[...] but that doesn't really change the fact that ff_* (and avpriv_*) are
>> not part of the public API/ABI and as such any changes or removals do not
>> require a SONAME bump."
>>
>>
>
> The important point is that you should never use or care about any of
> the ff* or avpriv* symbols, unless you are actually developing inside
> the libraries.

I agree about never using these symbols externally, but that doesn't 
mean I don't have to care about them.

> What happens to avpriv symbols is only a factor for in-between the av*
> libraries, and of no concern to the users, since both are not part of
> the official ABI/API.

That they are only used between the av* libraries means they are not 
part of the API, but still they *are* part of the ABI, simply because 
they appear in the symbol section of the .so file.

> Anyhow, the original question has been resolved, and there sadly are a
> bunch of hacks that require a few ff symbols to be exported for use in
> between libraries, but its already grown a lot less over the last few
> versions, and hopefully can be removed at some point.
> And just because its exported doesn't make it officially part of the
> ABI, though.

I'm not sure what you mean with 'officially' here. Every symbol exported 
by a shared library can be used by another program.
Even if only other av* libraries use the avpriv_* symbols they can't 
just be removed, because that would break ABI compatibility between the 
old version of the library using such a symbol with the new version of 
the other library not exporting this symbol anymore.

The way Debian calculates the dependencies on shared libraries usually 
leads to dependencies >= some minimal version, which would allow to 
install the old version of one av* library together with the new version 
of the other (and with things like backports to stable, this is not that 
unlikely).

So if such a symbol gets removed, I have to take special care that it 
doesn't lead to problems.

For now that means I'm going to backport the commit removing ff_* from 
libswresample.v, so that I don't have to worry about it. (But I would 
have a problem now, if ffmpeg were already in Debian/sid).

Best regards,
Andreas


More information about the ffmpeg-devel mailing list