Every library in FFmpeg provides a set of public APIs in its installed headers, which are those listed in the variable HEADERS in that library’s Makefile. All identifiers defined in those headers (except for those explicitly documented otherwise), and corresponding symbols exported from compiled shared or static libraries are considered public interfaces and must comply with the API and ABI compatibility rules described in this section.
Public APIs must be backward compatible within a given major version. I.e. any valid user code that compiles and works with a given library version must still compile and work with any later version, as long as the major version number is unchanged. "Valid user code" here means code that is calling our APIs in a documented and/or intended manner and is not relying on any undefined behavior. Incrementing the major version may break backward compatibility, but only to the extent described in Major version bumps.
We also guarantee backward ABI compatibility for shared and static libraries. I.e. it should be possible to replace a shared or static build of our library with a build of any later version (re-linking the user binary in the static case) without breaking any valid user binaries, as long as the major version number remains unchanged.
标签:major,ffmpeg,interfaces,library,public,version,static,Library,any From: https://www.cnblogs.com/sathcal/p/18537798