[FFmpeg-devel] ABI break in 4.3
Jan Engelhardt
jengelh at inai.de
Sun Jul 5 18:46:52 EEST 2020
On Sunday 2020-07-05 16:43, Timo Rothenpieler wrote:
>> LIBAVCODEC_58 {
>> global:
>> av_foo;
>> av_bar;
>> av_whatever_else_there_is;...
>> local:
>> *;
>> };
>> LIBAVCODEC_58.91 {
>> global:
>> avpriv_mpeg4audio_get_config2;
>> } LIBAVCODEC_58;
>> LIBAVCODEC_58.123 { /* future example */
>> global:
>> avblahblah;
>> } LIBAVCODEC_58.91;
>
> Won't that break the entire ABI of anything currently linked, and thus would
> require a major bump?
Since 4.3 was sort of a break over 4.2.3 already, the situation is that:
* $nextrelease can be compatible with 4.2.3's idea of the ABI, in which case
avpriv_mpeg4audio_get_config2 should be placed inside LIBAVCODEC_58.91, or
* $nextrelease can be compatible with 4.3's idea of the ABI, in which case
avpriv_mpeg4audio_get_config2 should be placed inside LIBAVCODEC_58.
Each of the two prior options is equally non-compelling. "58" is tarnished
already. What software generally does at this point — ffmpeg is not the first
project to have these issues — is to bump and start fresh.
> Generally, this seems incredibly hard to maintain and will very likely cause
> confusion every time someone adds stuff in the future.
How often do exported functions get added? Between 4.2.3 and 4.3,
that was _just one_, and that one was even an avpriv_* (which
probably shouldn't have been exported given its "priv" nature?!).
More information about the ffmpeg-devel
mailing list