|
- Release Notes
- =============
-
- * 10 "Eks"
-
- General notes
- -------------
-
- One of the main features of this release is the addition of reference-counted
- data buffers to Libav and their use in various structures. Specifically, the
- data buffers used by AVPacket and AVFrame can now be reference counted, which
- should allow to significantly simplify many use cases. In addition,
- reference-counted AVFrames can now be used in libavfilter, avoiding the need
- for a separate libavfilter-specific frame structure. Frames can now be passed
- straight from the decoders into filters or from filters to encoders.
-
- These additions made it necessary to bump the major versions of libavcodec,
- libavformat, libavdevice, libavfilter, and libavutil, which was accompanied by
- dropping some old deprecated APIs. These libraries are thus not ABI- or API-
- compatible with the previous release. All the other libraries (libavresample
- and libswscale) should be both ABI- and API-compatible.
-
- Another major point is the inclusion of the HEVC (AKA H.265, the successor of
- H.264) decoder in the main codebase. It was started in 2012 as a Libav Google
- Summer of Code project by Guillaume Martres and subsequently completed with
- the assistance of the OpenHEVC project and several Libav developers.
-
- As usual, this release also contains support for other new formats, many smaller
- new features and countless bug fixes. We can highlight a native VP9 decoder,
- with encoding provided through libvpx, native decoders for WebP, JPEG 2000, and
- AIC, as well as improved WavPack support with encoding through libwavpack,
- support for more AAC flavors (LD - low delay, ELD - enhanced low delay), slice
- multithreading in libavfilter, or muxing chapters in ASF. Furthermore there is
- more fine-grained detection of host and target libc, which should allow better
- portability to various cross compilation scenarios.
-
- See the Changelog file for a fuller list of significant changes.
-
- Please note that our policy on bug reports has not changed. We still only accept
- bug reports against HEAD of the Libav trunk repository. If you are experiencing
- issues with any formally released version of Libav, please try a current version
- of the development code to check if the issue still exists. If it does, make
- your report against the development code following the usual bug reporting
- guidelines.
-
-
- 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:
-
- [libavutil]
- + added the reference-counted buffers API (buffers.h)
- + moved the AVFrame struct to libavutil and added a new API for working with
- reference-counted AVFrames (frame.h)
-
- [libavcodec]
- + added an API for working with reference-counted AVPackets (av_packet_*)
- +- converted VDPAU to the hwaccel framework; the old way of using VDPAU is no
- longer supported
- - old audio encoding and decoding APIs removed
- - old video encoding API removed
- - deprecated enum CodecID removed (enum AVCodecID should be used instead)
- - deprecated audio resampling API removed (libavresample should be used
- instead)
-
- [libavfilter]
- +- replaced AVFilterBufferRef with AVFrame; AVFilterBufferRef and everything
- related to it still exists, but is deprecated
- + converted all filters to use the AVOptions system for configuration, it is
- now possible to query the supported options, their values and set them
- directly with av_opt_*
- + added a slice multithreading framework
- +- merged avfiltergraph.h to avfilter.h, using AVFilterGraph is now explicitly
- mandatory (it was implicitly required even before); added new API for
- allocating and initializing filters
-
- Please see the file doc/APIchanges for details along with similar
- programmer-centric information.
|