|
|
|
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 a few new
|
|
|
|
filters have been introduced, namely compand, to change audio dynamics, framepack,
|
|
|
|
to create stereoscopic videos, asetpts, to set audio pts, and interlace, to convert
|
|
|
|
progressive video to interlaced. Finally 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.
|