|
- Release Notes
- =============
-
- * 12 "Not Enough Trocadero"
-
- General notes
- -------------
-
- 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.
-
- 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.
-
- 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.
-
- 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 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 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.
-
- [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.
|