RELEASE_NOTES: update
[ffmpeg.git] / RELEASE_NOTES
1  ┌───────────────────────────────────────────┐
2  │ RELEASE NOTES for FFmpeg 2.3 "Mandelbrot" │
3  └───────────────────────────────────────────┘
4
5    The FFmpeg Project proudly presents FFmpeg 2.3 "Mandelbrot", a major
6    release with all the great features committed during the three-month period
7    since the release of FFmpeg 2.2.
8
9    In this release, there are lots of internal overhauls that make FFmpeg a
10    more accessible project for new developers. Many important new
11    optimizations and features like QTKit and AVFoundation input devices are
12    committed. Contributions done by Libav such as a new native Opus decoder
13    are also merged.
14
15    Because of the increasing difficulty to maintain and lack of maintainers,
16    we are very sorry to say that we have removed all Blackfin and SPARC
17    architecture assembly optimizations with the cleanups done. If you are
18    interested in maintaining optimization for these two architecture, feel
19    free to contact us and we will restore the code!
20
21    Oh, and since this release, this modern-looking release note is provided in
22    addition to the old-style Changelog file, to make it easier for you to
23    focus on the most important features in this release.
24
25    Enjoy!
26
27    ┌────────────────────────────┐
28    │ *  API Information         │
29    └────────────────────────────┘
30
31      FFmpeg 2.3 is completely source-compatible to the FFmpeg 2.2 series. There
32      are however some API deprecations that you need to take care of. Use `git
33      diff n2.2 n2.3 doc/APIchanges` to show the list of added and deprecated
34      APIs. FFmpeg 2.3 includes the following library versions:
35
36        • libavutil      52.92.100
37        • libavcodec     55.69.100
38        • libavformat    55.48.100
39        • libavdevice    55.13.102
40        • libavfilter     4.11.100
41        • libswscale      2. 6.100
42        • libswresample   0.19.100
43        • libpostproc    52. 3.100
44
45      Please refer to the doc/APIChanges file for more information.
46
47    ┌────────────────────────────┐
48    │ New Optimization           │
49    └────────────────────────────┘
50
51      We are excited to announce that we have committed new x86 assembly
52      optimization for HEVC, and FFmpeg's audio resampler libswresample. ARM
53      users will get a boost in MLP/TrueHD decoding thanks to new optimization.
54      Decoding Huffyuv also got a major boost from optimization on the C code.
55
56      Of special interest for Microsoft Visual Studio users, we have also
57      converted some preexisting x86 assembly to NASM/Yasm format compatible
58      with MSVC setup, especially in the area of audio resampling.
59
60      Another major feature in this release is the introduction of AArch64
61      (ARMv8) assembly optimization. AArch64 is another name for the first
62      64-bit ARM architecture, used by Apple A7 SoC inside iPhone 5S. Some
63      32-bit ARM assembly has already been ported to AArch64, but more work is
64      underway.
65
66    ┌────────────────────────────┐
67    │ Native Opus decoder        │
68    └────────────────────────────┘
69
70      Opus is an open audio format jointly developed by Xiph.Org, Mozilla,
71      Skype/Microsoft, and Broadcom. It combines the features of the Skype Cilk
72      speech codec and the Xiph.Org CELT music codec into one low-latency
73      codec. Decoding Opus is already possible since FFmpeg 1.0 using the
74      libopus library, but the new Opus native decoder brings a higher level of
75      stability and speed.
76
77    ┌────────────────────────────┐
78    │ QTKit and AVFoundation     │
79    └────────────────────────────┘
80
81      For OS X users, the new QTKit and AVFoundation devices allow you to use
82      the integrated camera on Macs. AVFoundation is a newer API only available
83      on OS X 10.7 "Lion" or newer. For users with older OS X systems, the
84      QTKit device using the older OS X API is for you.
85
86    ┌────────────────────────────┐
87    │ API Additions              │
88    └────────────────────────────┘
89
90      In this release, stream side data are introduced as AVStream.side_data as
91      a way to store miscellaneous stream-wide information. The format is
92      similar to the previously anonymous structure AVPacket.side_data (now
93      named as AVPacketSideData). With this change, audio ReplayGain
94      information and video rotation matrix are now exported through this API,
95      if available in the demuxer.
96
97      We also have improved libswresample's Doxygen API documentation, so new
98      developers wishing to use FFmpeg's excellent libraries can get started
99      more easily and faster.
100
101    ┌────────────────────────────┐
102    │ Last But Not Least         │
103    └────────────────────────────┘
104
105      Other interesting new features including hqx video filter, a pixel art
106      scaling filter; a fixed-point AC-3 decoder contributed by Imagination
107      Technologies; an On2 TrueMotion VP7 video decoder; an HTML5 WebVTT
108      subtitle decoder that allows creation of WebVTT from any text-based
109      subtitles; and an 1-bit Direct Stream Digital audio decoder.
110
111  ┌────────────────────────────┐
112  │ ★  List of New Features    │
113  └────────────────────────────┘
114
115    ┌────────────────────────────┐
116    │ Command line tools         │
117    └────────────────────────────┘
118
119     • Support for decoding through DXVA2 in ffmpeg
120
121    ┌────────────────────────────┐
122    │ libavcodec                 │
123    └────────────────────────────┘
124
125     • AC3 fixed-point decoding
126     • VP7 video decoder
127     • Alias PIX image encoder and decoder
128     • Improvements to the BRender PIX image decoder
129     • Improvements to the XBM decoder
130     • Improvements to OpenEXR image decoder
131     • Support decoding 16-bit RLE SGI images
132     • Direct Stream Digital (DSD) decoder
133     • On2 AVC (Audio for Video) decoder
134     • Native Opus decoder
135     • WebVTT encoder
136
137    ┌────────────────────────────┐
138    │ libavdevice                │
139    └────────────────────────────┘
140
141     • QTKit input device
142     • GDI screen grabbing for Windows
143     • AVFoundation input device
144
145    ┌────────────────────────────┐
146    │ libavformat                │
147    └────────────────────────────┘
148
149     • subfile protocol
150     • Phantom Cine demuxer
151     • Alternative rendition support for HTTP Live Streaming
152     • Magic Lantern Video (MLV) demuxer
153     • Image format auto-detection
154     • LRC lyric file demuxer and muxer
155     • Samba protocol (via libsmbclient)
156     • WebM DASH Manifest muxer
157
158    ┌────────────────────────────┐
159    │ libavfilter                │
160    └────────────────────────────┘
161
162     • shuffleplanes filter
163     • libbs2b-based stereo-to-binaural audio filter
164     • showcqt multimedia filter
165     • zoompan filter
166     • signalstats filter
167     • hqx filter (hq2x, hq3x, hq4x)
168     • flanger filter
169     • libfribidi support in drawtext
170
171  ┌────────────────────────────┐
172  │ ⚠  Behaviour changes       │
173  └────────────────────────────┘
174
175   • libx264 reference frames count is now limited depending on level chosen
176   • Because of the new image format auto-detection feature, you don't need to
177     specify image format when decoding an image with no extension.