[FFmpeg-devel] [RFC] Internal API updating policy

Stefano Sabatini stefano.sabatini-lala
Sat May 15 22:47:25 CEST 2010


Hi,

I propose to follow these rules:

* bump minor/micro number when adding an internal or public symbol,
  renaming one of them, or changing the order of parameters of an
  internal function

* bump the minor/micro number of a library when it starts to depend on
  a symbol defined in another (internal) library, or that symbol
  changed (e.g. it was renamed or the corresponding function changed
  signature).

This should help to track the internal libraries dependencies
(e.g. lavc-X.Y.Z depends on lavu >= A.B.C and lsws >= D.E.F).

For example if an internal symbol is added to lavc at X.Y.Z, and at
some point the symbol is used by lavf, lavf number should be bumped to
A.B.C, and we would have the dependency:
lavf A.B.C depends on lavc >= X.Y.Z

If an internal symbol is renamed at lavc X.Y.Z, and lavf uses that
symbol, then the minor/micro of lavf should be bumped and we would
have the dependency:
lavf A.B.C depends on lavc >= X.Y.Z

Another good idead would be to document such dependencies in
APIchanges, thus simplifing distro packagers work.

As for what regards applications depending on the internal API, I
don't think there is some way to avoid their breakage and they should
really avoid that sort of dependencies (and possibly collaborate with
us if they really think the API they're using should be made public),
but having such a system for tracking the internal API changes should
help the packagers to define their dependencies with the FFmpeg
libraries.

Regards.
-- 
FFmpeg = Foolish and Fanciful Mortal Peaceless Enlightening Goblin



More information about the ffmpeg-devel mailing list