diff options
author | Michael Niedermayer <michaelni@gmx.at> | 2013-05-18 11:17:52 +0200 |
---|---|---|
committer | Michael Niedermayer <michaelni@gmx.at> | 2013-05-18 11:17:52 +0200 |
commit | 97200d89b9fccef1b72ea0e0e1d8eff7a5e05f43 (patch) | |
tree | f393666a8f51e7533c38e91169527f837f5e8e2c /libavutil/avutil.h | |
parent | 0718f0cc24bc8413cd0cf44fcf000f0e52a67522 (diff) | |
parent | 40020e171a3549a2c0b65ce6f2649aec868872f2 (diff) | |
download | ffmpeg-97200d89b9fccef1b72ea0e0e1d8eff7a5e05f43.tar.gz |
Merge commit '40020e171a3549a2c0b65ce6f2649aec868872f2'
* commit '40020e171a3549a2c0b65ce6f2649aec868872f2':
doxy: add a section about versioning.
Conflicts:
libavutil/avutil.h
Merged-by: Michael Niedermayer <michaelni@gmx.at>
Diffstat (limited to 'libavutil/avutil.h')
-rw-r--r-- | libavutil/avutil.h | 33 |
1 files changed, 33 insertions, 0 deletions
diff --git a/libavutil/avutil.h b/libavutil/avutil.h index dc8a03f29a..4986f4f9ef 100644 --- a/libavutil/avutil.h +++ b/libavutil/avutil.h @@ -42,6 +42,39 @@ * @li @ref lswr "libswresample" audio resampling, format conversion and mixing * @li @ref lpp "libpostproc" post processing library * @li @ref lsws "libswscale" color conversion and scaling library + * + * @section ffmpeg_versioning Versioning and compatibility + * + * Each of the FFmpeg libraries contains a version.h header, which defines a + * major, minor and micro version number with the + * <em>LIBRARYNAME_VERSION_{MAJOR,MINOR,MICRO}</em> macros. The major version + * number is incremented with backward incompatible changes - e.g. removing + * parts of the public API, reordering public struct members, etc. The minor + * version number is incremented for backward compatible API changes or major + * new features - e.g. adding a new public function or a new decoder. The micro + * version number is incremented for smaller changes that a calling program + * might still want to check for - e.g. changing behavior in a previously + * unspecified situation. + * + * FFmpeg guarantees backward API and ABI compatibility for each library as long + * as its major version number is unchanged. This means that no public symbols + * will be removed or renamed. Types and names of the public struct members and + * values of public macros and enums will remain the same (unless they were + * explicitly declared as not part of the public API). Documented behavior will + * not change. + * + * In other words, any correct program that works with a given FFmpeg snapshot + * should work just as well without any changes with any later snapshot with the + * same major versions. This applies to both rebuilding the program against new + * FFmpeg versions or to replacing the dynamic FFmpeg libraries that a program + * links against. + * + * However, new public symbols may be added and new members may be appended to + * public structs whose size is not part of public ABI (most public structs in + * FFmpeg). New macros and enum values may be added. Behavior in undocumented + * situations may change slightly (and be documented). All those are accompanied + * by an entry in doc/APIchanges and incrementing either the minor or micro + * version number. */ /** |