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