summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAnton Khirnov <anton@khirnov.net>2016-05-16 15:52:37 +0200
committerAnton Khirnov <anton@khirnov.net>2016-05-19 13:44:41 +0200
commit65dc7ca4c8e7e56362626a5d31e563e80108f104 (patch)
tree29f539dd4f39539c6f211295300638b37b8e4563
parentd68fb1475856cf93199e2bc4eee3063902c35df7 (diff)
Add release notes for 12.
-rw-r--r--doc/RELEASE_NOTES97
1 files changed, 48 insertions, 49 deletions
diff --git a/doc/RELEASE_NOTES b/doc/RELEASE_NOTES
index bda4789aff..a440a3a43c 100644
--- a/doc/RELEASE_NOTES
+++ b/doc/RELEASE_NOTES
@@ -1,48 +1,31 @@
Release Notes
=============
-* 11 "One Louder"
+* 12 "Not Enough Trocadero"
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.
+This release once again bumps the major versions of all the libraries, removing
+some long-deprecated APIs. This means that it is neither API nor ABI-compatible
+with the previous release. The users who still did not update their code are
+advised to look at the next section of these release notes, the doc/APIchanges
+file and the API migration guide on our wiki. If those are not sufficient, do
+not hesitate to contact us on IRC or through the user mailing list.
-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.
+Among the main highlights of this release are several additions related to
+hardware acceleration. There is a new API for managing hardware devices and
+frame pools, which allows to add new features such as zero-copy
+hardware-accelerated filtering with libavfilter and should reduce the
+boilerplate code required for existing hardware-accelerated decoders. We have
+added QuickSync decoding and encoding, NVENC encoding and CUDA image scaling,
+VAAPI encoding and image scaling, OpenMAX encoding, MMAL decoding and Direct3D11
+decoding.
-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.
+Other significant additions not related to hardware acceleration include
+decoders for Canopus HQ/HQA and HQX, Go2Meeting, AAC ELD, TDSC, Hap, DXV, SPV1,
+and a new ASF demuxer written according to the specification. There were also
+countless smaller changes and bug fixes.
See the Changelog file for a more extensive list of significant changes.
@@ -54,22 +37,38 @@ 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.
++ Added an object for storing codec parameters (AVCodecParameters) and its
+ related API. It will now replace AVCodecContext everywhere except the actual
+ encoders/decoders.
++- Added a new API for handling refcounted AVPackets, mirroring the AVFrame API.
+ Deprecated certain old ill-defined AVPacket functions.
++- Added a new API for audio/video encoding and decoding, with decoupled input
+ and output. This will e.g. allow a decoder to produce multiple output frames
+ for a single input packet, which was not possible with the previous API. All
+ users are strongly encouraged to switch to this new API as soon as possible,
+ since certain decoders and encoders might start requiring the new API to be
+ used.
++- Added a new API for bitstream filtering, which works with refcounted
+ AVPackets and is more clearly defined and documented. The old bitstream
+ filtering API is now deprecated.
[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.
++ Added new IO callbacks to AVFormatContext, allowing the caller to provide
+ custom IO for certain special muxers and demuxers.
++- Replaced AVStream.codec (AVCodecContext) with AVStream.codecpar
+ (AVCodecParameters) as the means of signalling codec parameters between the
+ muxers/demuxers and the caller.
+
+[libavutil]
++ Added a new API (hwcontext.h) for handling hardware acceleration devices and
+ hardware frame pools.
-[libavresample]
-+ Added an API for working with AVFrames.
+[libavfilter]
++ Added a new struct, AVBufferSrcParameters, for passing the stream parameters
+ to the buffer source. It is now the recommended way of configuring the buffer
+ source.
++ Added AVFilterContext.hw_device_ctx and AVFilterLink.hw_frames_ctx that allow
+ hardware frames to be used in filter graphs.
Please see the file doc/APIchanges for details along with similar
programmer-centric information.