Commit fe533ffd authored by Anton Khirnov's avatar Anton Khirnov Committed by Reinhard Tartler

Prepare release notes for Libav 10 "Eks"

Additional editing by Diego Biurrun
parent b3189aff
Release Notes Release Notes
============= =============
* 9 "Plain Nine" * 10 "Eks"
General notes General notes
------------- -------------
From this release onwards, we have decided to drop the leading zero from our One of the main features of this release is the addition of reference-counted
release numbers. There were no plans of ever changing it, so it carried no data buffers to Libav and their use in various structures. Specifically, the
information. Thus this release is just a plain 9, the next will be 10 etc. data buffers used by AVPacket and AVFrame can now be reference counted, which
should allow to significantly simplify many use cases. In addition,
A new library arrived in Libav during this development cycle -- its name is reference-counted AVFrames can now be used in libavfilter, avoiding the need
libavresample and it handles audio conversion and mixing. All users are for a separate libavfilter-specific frame structure. Frames can now be passed
encouraged to use it instead of the old, now deprecated, audio conversion straight from the decoders into filters or from filters to encoders.
API in libavcodec.
These additions made it necessary to bump the major versions of libavcodec,
The libpostproc library now resides in a separate tree. It was fully independent libavformat, libavdevice, libavfilter, and libavutil, which was accompanied by
of the other Libav libraries, not used by any of the tools and saw very little dropping some old deprecated APIs. These libraries are thus not ABI- or API-
development. For these reasons we decided that it has no place in Libav. A compatible with the previous release. All the other libraries (libavresample
standalone Git tree is available at http://git.videolan.org/?p=libpostproc.git and libswscale) should be both ABI- and API-compatible.
for people wishing to use libpostproc.
Another major point is the inclusion of the HEVC (AKA H.265, the successor of
The major versions of the libavcodec, libavformat and libavfilter libraries have H.264) decoder in the main codebase. It was started in 2012 as a Libav Google
been bumped, so they are not API or ABI compatible with the 0.8 release. The Summer of Code project by Guillaume Martres and subsequently completed with
ffmpeg transcoding tool, kept for compatibility in 0.8, has also been dropped. the assistance of the OpenHEVC project and several Libav developers.
This release brings a number of significant changes in the libavfilter library. As usual, this release also contains support for other new formats, many smaller
Firstly, all the API dealing with filter internals is no longer public. The new features and countless bug fixes. We can highlight a native VP9 decoder,
result is that creating user-side filters will not be supported until with encoding provided through libvpx, native decoders for WebP, JPEG 2000, and
libavfilter is more mature. AIC, as well as improved WavPack support with encoding through libwavpack,
Secondly, full audio filtering support is now available along with a set of support for more AAC flavors (LD - low delay, ELD - enhanced low delay), slice
basic audio filters. We hope that their number will soon grow significantly. multithreading in libavfilter, or muxing chapters in ASF. Furthermore there is
The avconv transcoding tool has of course been extended to handle audio more fine-grained detection of host and target libc, which should allow better
filtering as well. portability to various cross compilation scenarios.
There were a number of other API changes, most importantly the addition of
the buffer sink public API. See the Changelog file for a fuller list of significant changes.
In the libavcodec library, one of the most notable changes is added support for
planar audio (i.e. not interleaved). Many decoders and encoders, that previously
did inefficient (de)interleaving internally, now only work with planar audio
formats. Libavresample can be used for optimized conversion between interleaved
and planar formats.
Of big interest to our Windows users, Libav now supports building with the MSVC
compiler. Since MSVC does not support C99 features used extensively by Libav,
this has been accomplished using a converter that turns C99 code to C89. See the
platform-specific documentation for more detailed documentation on building
Libav with MSVC.
As usual, this release also contains support for some new formats, many smaller
new features and countless bug fixes. We can highlight Opus decoding / encoding
through libopus, encoders for Apple ProRes and Ut Video, WMA Lossless and
RealAudio Lossless decoders, fragmented MOV/MP4 and ISMV (Smooth Streaming)
muxers, 24-bit FLAC encoding, a large number of RTMP improvements and support
for cover art in ID3v2, WMA, MP4 and FLAC.
See the Changelog file for a list of significant changes.
Please note that our policy on bug reports has not changed. We still only accept 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 bug reports against HEAD of the Libav trunk repository. If you are experiencing
...@@ -72,30 +51,31 @@ A number of additional APIs have been introduced and some existing functions ...@@ -72,30 +51,31 @@ A number of additional APIs have been introduced and some existing functions
have been deprecated and are scheduled for removal in the next release. have been deprecated and are scheduled for removal in the next release.
Significant API changes include: Significant API changes include:
[libavcodec]: [libavutil]
* New video encoding API, similar to the previously introduced audio encoding + added the reference-counted buffers API (buffers.h)
API, which encodes from an AVFrame to an AVPacket, thus allowing it to + moved the AVFrame struct to libavutil and added a new API for working with
properly output timing information and side data. reference-counted AVFrames (frame.h)
* All CODEC_ID_* symbols now carry AV_ prefixes. Non-prefixed codec IDs are [libavcodec]
deprecated. + 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
* New codec descriptor API, which allows getting the properties of a given codec longer supported
(identified by its ID), without referring to a specific decoder or encoder. - old audio encoding and decoding APIs removed
- old video encoding API removed
* An AVFrame must now be freed with a dedicated function, avcodec_free_frame(). - deprecated enum CodecID removed (enum AVCodecID should be used instead)
- deprecated audio resampling API removed (libavresample should be used
[libavutil]: instead)
* New audio FIFO API, which simplifies managing/merging/splitting audio buffers.
[libavfilter]
* new int/float type punning API +- replaced AVFilterBufferRef with AVFrame; AVFilterBufferRef and everything
related to it still exists, but is deprecated
[libavfilter]: + converted all filters to use the AVOptions system for configuration, it is
* All filter internals were hidden. now possible to query the supported options, their values and set them
directly with av_opt_*
* audio filtering. + added a slice multithreading framework
+- merged avfiltergraph.h to avfilter.h, using AVFilterGraph is now explicitly
* new buffer sink API for getting frames out of libavfilter. 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 Please see the file doc/APIchanges for details along with similar
programmer-centric information. programmer-centric information.
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment