|
- Release Notes
- =============
-
- * 11 "One Louder"
-
- General notes
- -------------
-
- With this release we are trying to answer the numerous calls from our users for
- shorter development cycles. From now on we will aim for approximately two major
- releases per year.
-
- Libav 11 is API-, but not ABI-compatible with the previous major release. This
- means that the code using our libraries needs to be rebuilt, but no source
- changes should be required. Note however, that a number of old APIs remain
- deprecated and will be dropped in the near future. All users are strongly
- encouraged to update their code as soon as possible. The doc/APIchanges file in
- the Libav source tree and the migration guide on the wiki should help with
- migration to the new APIs. If those are not sufficient, do not hesitate to
- contact us on IRC or through the user mailing list.
-
- One specific API issue in libavformat deserves mentioning here. When using
- libavcodec for decoding or encoding and libavformat for demuxing or muxing,
- the standard practice was to use the stream codec context (AVStream.codec) for
- actual decoding or encoding. There are multiple problems with this pattern
- (the main one is that the decoder/demuxer or encoder/muxer are not necessarily
- synchronized and may overwrite each other's state), so it is now strongly
- discouraged and will likely be deprecated in the future. Users should instead
- allocate a separate decoding or encoding context and populate it from the
- demuxing codec context (or the reverse for encoding) with the
- avcodec_copy_context() function.
-
- The main highlights of this release include native Opus, VP7, OpenEXR, and On2
- AVC decoders, HEVC encoding through libx265, new APIs for exporting ReplayGain
- and display transformation metadata and countless bug fixes. A large effort was
- also expended on internal cleanups which are not very visible to our users,
- but should make the codebase cleaner, safer and easier to maintain and extend.
- One point worth mentioning is refactoring the large monolithic framework for
- architecture-specific codec optimizations into small blocks, which reduces the
- size of configurations that selectively enable or disable certain codecs.
-
- The avserver streaming tool, which has not been maintained for many years and
- was mostly broken, was removed from the tree. It was decided that it is a
- significant maintenance burden and that we do our users no service by pretending
- to support it, while we in fact do not.
-
- See the Changelog file for a more extensive list of significant changes.
-
- API changes
- -----------
-
- A number of additional APIs have been introduced and some existing functions
- have been deprecated and are scheduled for removal in the next release.
- Significant API changes include:
-
- [libavcodec]
- + Added the avcodec_copy_context() function that must from now on be used for
- freeing codec contexts.
- +- Added a new VDA hardware acceleration API, since the old one was broken and
- not fixable in a compatible way. Deprecated the old VDA API.
-
- [libavformat]
- + Added support for exporting stream-global (as opposed to per-packet) side
- data. This feature is now used by some demuxers to export ReplayGain or
- display transformation matrix (aka rotation) or stereoscopic 3D mode.
- + Added an API for live metadata updates through event flags.
- +- Changed the way to provide a hint about the desired timebase to muxers.
- Previously it was done by setting AVStream.codec.time_base. Now callers
- should set AVStream.time_base.
-
- [libavresample]
- + Added an API for working with AVFrames.
-
- Please see the file doc/APIchanges for details along with similar
- programmer-centric information.
|