[FFmpeg-devel] ABI break between 3.0 and 3.3 without symvers/SONAME changes
Timo Rothenpieler
timo at rothenpieler.org
Sat Jun 3 15:27:25 EEST 2017
Am 03.06.2017 um 14:19 schrieb Jan Engelhardt:
>
> On Saturday 2017-06-03 14:11, wm4 wrote:
>>>
>>> The layout of struct AVCodec changed. Four function pointers were
>>> inserted in the middle, shifting void (*flush) to a new address. The
>>> size of AVCodec also changed, which would have required a full MAJOR
>>> bump.
>>
>> Those aren't even public fields.
>
> Fair enough, seems documented after more looking around.
>
>> Anyway, in general, I recommend not pretending that FFmpeg has ABI
>> compatibility. Especially not across major releases
>
> That would be fine with me - could ffmpeg then ensure that the
> major is in fact bumped on major releases? In distro context,
> a bump is easier to swallow than a non-bump..
It is made sure that the public ABI does not break between major
releases, this the major version is not bumped.
The problem in practice is that _a lot_ of downstream library users
misuse the API, using non-public fields and what not, and still end up
breaking, most commonly at ffmpeg major releases.
More information about the ffmpeg-devel
mailing list