On Saturday 2017-06-03 14:27, Timo Rothenpieler wrote: > > 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.
I am of thinking of doing this: After the distribution build scripts have called `make install` for ffmpeg, to then strip all the private fields from /usr/include/*av*/*.h, so that programs which access these private fields stop building. I find that there is already a "#ifndef FF_INTERNAL_FIELDS" block, though it only spans a few fields. I would be adding another "#ifndef STRIP_ME" block around _all_ private fields and then remove then with something like /usr/bin/unifdef after `make install`. Does that sound like a plan? Would this unifdeffing be something ffmpeg upstream might consider? (As an alternative to that AVcontext/AVcontext_base struct game) _______________________________________________ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org http://ffmpeg.org/mailman/listinfo/ffmpeg-devel