[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