4 * 12 "Not Enough Trocadero"
9 This release once again bumps the major versions of all the libraries, removing
10 some long-deprecated APIs. This means that it is neither API nor ABI-compatible
11 with the previous release. The users who still did not update their code are
12 advised to look at the next section of these release notes, the doc/APIchanges
13 file and the API migration guide on our wiki. If those are not sufficient, do
14 not hesitate to contact us on IRC or through the user mailing list.
16 Among the main highlights of this release are several additions related to
17 hardware acceleration. There is a new API for managing hardware devices and
18 frame pools, which allows to add new features such as zero-copy
19 hardware-accelerated filtering with libavfilter and should reduce the
20 boilerplate code required for existing hardware-accelerated decoders. We have
21 added QuickSync decoding and encoding, NVENC encoding and CUDA image scaling,
22 VAAPI encoding and image scaling, OpenMAX encoding, MMAL decoding and Direct3D11
25 Other significant additions not related to hardware acceleration include
26 decoders for Canopus HQ/HQA and HQX, Go2Meeting, AAC ELD, TDSC, Hap, DXV, SPV1,
27 and a new ASF demuxer written according to the specification. There were also
28 countless smaller changes and bug fixes.
30 See the Changelog file for a more extensive list of significant changes.
35 A number of additional APIs have been introduced and some existing functions
36 have been deprecated and are scheduled for removal in the next release.
37 Significant API changes include:
40 + Added an object for storing codec parameters (AVCodecParameters) and its
41 related API. It will now replace AVCodecContext everywhere except the actual
43 +- Added a new API for handling refcounted AVPackets, mirroring the AVFrame API.
44 Deprecated certain old ill-defined AVPacket functions.
45 +- Added a new API for audio/video encoding and decoding, with decoupled input
46 and output. This will e.g. allow a decoder to produce multiple output frames
47 for a single input packet, which was not possible with the previous API. All
48 users are strongly encouraged to switch to this new API as soon as possible,
49 since certain decoders and encoders might start requiring the new API to be
51 +- Added a new API for bitstream filtering, which works with refcounted
52 AVPackets and is more clearly defined and documented. The old bitstream
53 filtering API is now deprecated.
56 + Added new IO callbacks to AVFormatContext, allowing the caller to provide
57 custom IO for certain special muxers and demuxers.
58 +- Replaced AVStream.codec (AVCodecContext) with AVStream.codecpar
59 (AVCodecParameters) as the means of signalling codec parameters between the
60 muxers/demuxers and the caller.
63 + Added a new API (hwcontext.h) for handling hardware acceleration devices and
67 + Added a new struct, AVBufferSrcParameters, for passing the stream parameters
68 to the buffer source. It is now the recommended way of configuring the buffer
70 + Added AVFilterContext.hw_device_ctx and AVFilterLink.hw_frames_ctx that allow
71 hardware frames to be used in filter graphs.
73 Please see the file doc/APIchanges for details along with similar
74 programmer-centric information.