[FFmpeg-devel] [PATCH 1/2] avfilter/transform: Stop exporting internal functions

James Almer jamrial at gmail.com
Thu Feb 25 16:23:56 EET 2021


On 2/24/2021 9:31 PM, Andreas Rheinhardt wrote:
> James Almer:
>> On 2/24/2021 11:22 AM, Andreas Rheinhardt wrote:
>>> avfilter_transform, avfilter_(add|sub|mult)_matrix are not part of the
>>> public API (transform.h is not a public header), yet they are currently
>>> exported because of their name. This commit changes this:
>>> avfilter_transform is renamed to ff_affine_transform; the other
>>> functions are just removed as they have never been used at all.
>>
>> The symbols are exported and have been in four releases so far for this
>> soname. If we plan on making a 4.4 release before the bump, it may be a
>> good idea if we keep the symbols around for the sake of not affecting
>> the ABI, so I'm inclined towards just wrapping them in a
>> LIBAVFILTER_VERSION_MAJOR < 8 check like we do when we remove avpriv ones.
>>
> 
> And why? There was never a legitimate outside user of these functions.

Because it's still exported. But ok, since nobody seems to think it's 
worth bothering with, this patch should be ok as is.

> And removing avfilter_all_channel_layouts in
> d5e5c6862bbc834d5a036a3fa053a7569d84f928 (which also didn't have a
> legitimate outside user) didn't seem to break anything either.

That function and others are mentioned as added in APIChanges yet their 
removal is not. Sounds like it was handled poorly...

> Btw: 88d80cb97528d52dac3178cf5393d6095eca6200 broke ABI for x64, because
> older versions of libavformat exchange a PutBitContext with libavcodec
> via avpriv_align_put_bits and avpriv_copy_bits. So we can't really make
> a 4.4 release.

That commit could be reverted in the release/4.4 branch. But yeah, it 
should have not been committed until those two functions were removed, 
since they tie PutBitContext to the ABI.
A crappy situation overall, but it should not prevent us from making one 
last release before the bump. The amount of additions to the libraries 
is considerable, and the first release post bump will be missing a lot 
of old API, so adoption could take a bit, and something newer than 4.3 
should be readily available long before that.


More information about the ffmpeg-devel mailing list