[FFmpeg-devel] ABI break between 3.0 and 3.3 without symvers/SONAME changes

Jan Engelhardt jengelh at inai.de
Sat Jun 3 15:31:31 EEST 2017


On Saturday 2017-06-03 14:27, Timo Rothenpieler wrote:
>
>> 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.

Would this be a feasible approach to inhibit users accessing private
fields?

avcodec.h:
struct AVcontext {
	/* only public fields */
};
avcodec_internal.h:
struct AVcontext_full {
	struct AVcontext base;
	/* all the private fields */
};
void somefunc(AVcontext *a)
{
	AVcontext_full *af = a;
	...
}


More information about the ffmpeg-devel mailing list