~ubuntu-branches/ubuntu/utopic/libav/utopic

« back to all changes in this revision

Viewing changes to doc/RELEASE_NOTES

  • Committer: Package Import Robot
  • Author(s): Reinhard Tartler
  • Date: 2014-09-13 15:36:38 UTC
  • mfrom: (1.3.49 sid)
  • Revision ID: package-import@ubuntu.com-20140913153638-6rfush77baz008o9
Tags: 6:11-1
* Upload final 11 release
  - matroskadec: parse stereo mode on decoding (Closes: #757185)

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
1
Release Notes
2
2
=============
3
3
 
4
 
* 10 "Eks"
 
4
* 11 "One Louder"
5
5
 
6
6
General notes
7
7
-------------
8
8
 
9
 
One of the main features of this release is the addition of reference-counted
10
 
data buffers to Libav and their use in various structures. Specifically, the
11
 
data buffers used by AVPacket and AVFrame can now be reference counted, which
12
 
should allow to significantly simplify many use cases. In addition,
13
 
reference-counted AVFrames can now be used in libavfilter, avoiding the need
14
 
for a separate libavfilter-specific frame structure. Frames can now be passed
15
 
straight from the decoders into filters or from filters to encoders.
16
 
 
17
 
These additions made it necessary to bump the major versions of libavcodec,
18
 
libavformat, libavdevice, libavfilter, and libavutil, which was accompanied by
19
 
dropping some old deprecated APIs. These libraries are thus not ABI- or API-
20
 
compatible with the previous release. All the other libraries (libavresample
21
 
and libswscale) should be both ABI- and API-compatible.
22
 
 
23
 
Another major point is the inclusion of the HEVC (AKA H.265, the successor of
24
 
H.264) decoder in the main codebase. It was started in 2012 as a Libav Google
25
 
Summer of Code project by Guillaume Martres and subsequently completed with
26
 
the assistance of the OpenHEVC project and several Libav developers.
27
 
 
28
 
As usual, this release also contains support for other new formats, many smaller
29
 
new features and countless bug fixes. We can highlight a native VP9 decoder,
30
 
with encoding provided through libvpx, native decoders for WebP, JPEG 2000, and
31
 
AIC, as well as improved WavPack support with encoding through libwavpack,
32
 
support for more AAC flavors (LD - low delay, ELD - enhanced low delay), slice
33
 
multithreading in libavfilter, or muxing chapters in ASF. Furthermore a few new
34
 
filters have been introduced, namely compand, to change audio dynamics, framepack,
35
 
to create stereoscopic videos, asetpts, to set audio pts, and interlace, to convert
36
 
progressive video to interlaced. Finally there is more fine-grained detection of
37
 
host and target libc, which should allow better portability to various cross
38
 
compilation scenarios.
39
 
 
40
 
See the Changelog file for a fuller list of significant changes.
41
 
 
42
 
Please note that our policy on bug reports has not changed. We still only accept
43
 
bug reports against HEAD of the Libav trunk repository. If you are experiencing
44
 
issues with any formally released version of Libav, please try a current version
45
 
of the development code to check if the issue still exists. If it does, make
46
 
your report against the development code following the usual bug reporting
47
 
guidelines.
48
 
 
 
9
With this release we are trying to answer the numerous calls from our users for
 
10
shorter development cycles. From now on we will aim for approximately two major
 
11
releases per year.
 
12
 
 
13
Libav 11 is API-, but not ABI-compatible with the previous major release. This
 
14
means that the code using our libraries needs to be rebuilt, but no source
 
15
changes should be required. Note however, that a number of old APIs remain
 
16
deprecated and will be dropped in the near future. All users are strongly
 
17
encouraged to update their code as soon as possible. The doc/APIchanges file in
 
18
the Libav source tree and the migration guide on the wiki should help with
 
19
migration to the new APIs. If those are not sufficient, do not hesitate to
 
20
contact us on IRC or through the user mailing list.
 
21
 
 
22
One specific API issue in libavformat deserves mentioning here. When using
 
23
libavcodec for decoding or encoding and libavformat for demuxing or muxing,
 
24
the standard practice was to use the stream codec context (AVStream.codec) for
 
25
actual decoding or encoding. There are multiple problems with this pattern
 
26
(the main one is that the decoder/demuxer or encoder/muxer are not necessarily
 
27
synchronized and may overwrite each other's state), so it is now strongly
 
28
discouraged and will likely be deprecated in the future. Users should instead
 
29
allocate a separate decoding or encoding context and populate it from the
 
30
demuxing codec context (or the reverse for encoding) with the
 
31
avcodec_copy_context() function.
 
32
 
 
33
The main highlights of this release include native Opus, VP7, OpenEXR, and On2
 
34
AVC decoders, HEVC encoding through libx265, new APIs for exporting ReplayGain
 
35
and display transformation metadata and countless bug fixes. A large effort was
 
36
also expended on internal cleanups which are not very visible to our users,
 
37
but should make the codebase cleaner, safer and easier to maintain and extend.
 
38
One point worth mentioning is refactoring the large monolithic framework for
 
39
architecture-specific codec optimizations into small blocks, which reduces the
 
40
size of configurations that selectively enable or disable certain codecs.
 
41
 
 
42
The avserver streaming tool, which has not been maintained for many years and
 
43
was mostly broken, was removed from the tree. It was decided that it is a
 
44
significant maintenance burden and that we do our users no service by pretending
 
45
to support it, while we in fact do not.
 
46
 
 
47
See the Changelog file for a more extensive list of significant changes.
49
48
 
50
49
API changes
51
50
-----------
54
53
have been deprecated and are scheduled for removal in the next release.
55
54
Significant API changes include:
56
55
 
57
 
[libavutil]
58
 
+ added the reference-counted buffers API (buffers.h)
59
 
+ moved the AVFrame struct to libavutil and added a new API for working with
60
 
  reference-counted AVFrames (frame.h)
61
 
 
62
56
[libavcodec]
63
 
+ added an API for working with reference-counted AVPackets (av_packet_*)
64
 
+- converted VDPAU to the hwaccel framework; the old way of using VDPAU is no
65
 
   longer supported
66
 
- old audio encoding and decoding APIs removed
67
 
- old video encoding API removed
68
 
- deprecated enum CodecID removed (enum AVCodecID should be used instead)
69
 
- deprecated audio resampling API removed (libavresample should be used
70
 
  instead)
71
 
 
72
 
[libavfilter]
73
 
+- replaced AVFilterBufferRef with AVFrame; AVFilterBufferRef and everything
74
 
   related to it still exists, but is deprecated
75
 
+ converted all filters to use the AVOptions system for configuration, it is
76
 
  now possible to query the supported options, their values and set them
77
 
  directly with av_opt_*
78
 
+ added a slice multithreading framework
79
 
+- merged avfiltergraph.h to avfilter.h, using AVFilterGraph is now explicitly
80
 
   mandatory (it was implicitly required even before); added new API for
81
 
   allocating and initializing filters
 
57
+  Added the avcodec_copy_context() function that must from now on be used for
 
58
   freeing codec contexts.
 
59
+- Added a new VDA hardware acceleration API, since the old one was broken and
 
60
   not fixable in a compatible way. Deprecated the old VDA API.
 
61
 
 
62
[libavformat]
 
63
+  Added support for exporting stream-global (as opposed to per-packet) side
 
64
   data. This feature is now used by some demuxers to export ReplayGain or
 
65
   display transformation matrix (aka rotation) or stereoscopic 3D mode.
 
66
+  Added an API for live metadata updates through event flags.
 
67
+- Changed the way to provide a hint about the desired timebase to muxers.
 
68
   Previously it was done by setting AVStream.codec.time_base. Now callers
 
69
   should set AVStream.time_base.
 
70
 
 
71
[libavresample]
 
72
+ Added an API for working with AVFrames.
82
73
 
83
74
Please see the file doc/APIchanges for details along with similar
84
75
programmer-centric information.