[FFmpeg-devel] ABI (in)stability of FFmpeg

Michael Niedermayer michaelni at gmx.at
Mon Jul 28 04:23:33 CEST 2014

On Sun, Jul 27, 2014 at 10:18:16PM +0200, Andreas Cadhalpun wrote:
> Hi,
> the commit message of 6e8e9f1e517ee52fe439f3e8ca762f09d235f21e reads:
> "Merge commit '8c02adc62d71dfbb079a04753d8c16152c49de88'
> * commit '8c02adc62d71dfbb079a04753d8c16152c49de88':
>   lavu: add all color-related enums to AVFrame
> Conflicts:
> 	libavcodec/avcodec.h
> 	libavutil/frame.c
> 	libavutil/frame.h
> 	libavutil/version.h
> The version check is changed so they are available with the current ABI
> FFmpeg libs should have no problems with added fields, nor should any
> application using the libs, and we regularly added fields in the past.
> We also moved 2 of these fields to AVFrame already previously
> without issues."
> This seems to be wrong, at least vlc has a problem with this.
> If you compile it against 2.2 and then install a version of FFmpeg
> containing this commit, without recompiling vlc against it, the
> following crash can be observed:


i see:
2a072be:modules/codec/avcodec/audio.c:    AVFrame frame;
2a072be:modules/codec/avcodec/audio.c-    memset( &frame, 0, sizeof( frame ) );

That looks like there is code that depends on sizeof(AVFrame) in vlc
2.1.4, that is upstream vlc, i didnt check if this is also in debian

both ffmpeg since 1.1 and libav since v9 contain this:
"* sizeof(AVFrame) is not a part of the public ABI, so new fields may be added"

also there where fields added to AVFrame between each release since
at least FFmpeg 2.0


> So I suggest to revert to the old ABI until the next soversion bump.

This would be possible, i will send a patch for discussion

Michael     GnuPG fingerprint: 9FF2128B147EF6730BADF133611EC787040B0FAB

The worst form of inequality is to try to make unequal things equal.
-- Aristotle
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 181 bytes
Desc: Digital signature
URL: <https://ffmpeg.org/pipermail/ffmpeg-devel/attachments/20140728/49f7102d/attachment.asc>

More information about the ffmpeg-devel mailing list