|
|
|
┌─────────────────────────────────┐
|
|
|
|
│ RELEASE NOTES for FFmpeg 2.3 │
|
|
|
|
└─────────────────────────────────┘
|
|
|
|
|
|
|
|
The FFmpeg Project proudly presents FFmpeg 2.3, a major release with all
|
|
|
|
the great features committed during the three-month period since the
|
|
|
|
release of FFmpeg 2.2.
|
|
|
|
|
|
|
|
In this release, there are lots of internal overhauls that make FFmpeg a
|
|
|
|
more accessible project for new developers. Many important new features
|
|
|
|
like native Opus decoder and QTKit and AVFoundation input devices are also
|
|
|
|
committed.
|
|
|
|
|
|
|
|
Because of the increasing difficulty to maintain and lack of maintainers,
|
|
|
|
we are very sorry to say that we have removed all Blackfin and SPARC
|
|
|
|
architecture assembly optimizations with the cleanups done. If you are
|
|
|
|
interested in maintaining optimization for these two architecture, feel
|
|
|
|
free to contact us and we will restore the code!
|
|
|
|
|
|
|
|
Since this release, the traditional Changelog file is upgraded to this
|
|
|
|
modern-looking release note. Old changelogs are moved to doc/Changelog.old.
|
|
|
|
|
|
|
|
Enjoy!
|
|
|
|
|
|
|
|
┌────────────────────────────┐
|
|
|
|
│ * API Information │
|
|
|
|
└────────────────────────────┘
|
|
|
|
|
|
|
|
FFmpeg 2.3 is completely source-compatible to the FFmpeg 2.2 series. There
|
|
|
|
are however some API deprecations that you need to take care of. Use `git
|
|
|
|
diff n2.2 n2.3 doc/APIchanges` to show the list of added and deprecated
|
|
|
|
APIs. FFmpeg 2.3 includes the following library versions:
|
|
|
|
|
|
|
|
• libavutil 52.92.100
|
|
|
|
• libavcodec 55.69.100
|
|
|
|
• libavformat 55.46.100
|
|
|
|
• libavdevice 55.13.102
|
|
|
|
• libavfilter 4.10.100
|
|
|
|
• libswscale 2. 6.100
|
|
|
|
• libswresample 0.19.100
|
|
|
|
• libpostproc 52. 3.100
|
|
|
|
|
|
|
|
Please refer to the doc/APIChanges file for more information.
|
|
|
|
|
|
|
|
┌────────────────────────────┐
|
|
|
|
│ New Optimization │
|
|
|
|
└────────────────────────────┘
|
|
|
|
|
|
|
|
We are excited to announce that we have committed new x86 assembly
|
|
|
|
optimization for HEVC, and FFmpeg's audio resampler libswresample. ARM
|
|
|
|
users will get a boost in MLP/TrueHD decoding thanks to new optimization.
|
|
|
|
Decoding Huffyuv also got a major boost from optimization on the C code.
|
|
|
|
|
|
|
|
Of special interest for Microsoft Visual Studio users, we have also
|
|
|
|
converted some preexisting x86 assembly to NASM/Yasm format compatible
|
|
|
|
with MSVC setup, especially in the area of audio resampling.
|
|
|
|
|
|
|
|
Another major feature in this release is the introduction of AArch64
|
|
|
|
(ARMv8) assembly optimization. AArch64 is another name for the first
|
|
|
|
64-bit ARM architecture, used by Apple A7 SoC inside iPhone 5S. We have
|
|
|
|
already ported some 32-bit ARM to AArch64, but more work is underway.
|
|
|
|
|
|
|
|
┌────────────────────────────┐
|
|
|
|
│ Native Opus decoder │
|
|
|
|
└────────────────────────────┘
|
|
|
|
|
|
|
|
Opus is an open audio format jointly developed by Xiph.Org, Mozilla,
|
|
|
|
Skype/Microsoft, and Broadcom. It combines the features of the Skype Cilk
|
|
|
|
speech codec and the Xiph.Org CELT music codec into one low-latency
|
|
|
|
codec. Decoding Opus is already possible since FFmpeg 1.0 using the
|
|
|
|
libopus library, but the new Opus native decoder brings a higher level of
|
|
|
|
stability and speed.
|
|
|
|
|
|
|
|
┌────────────────────────────┐
|
|
|
|
│ QTKit and AVFoundation │
|
|
|
|
└────────────────────────────┘
|
|
|
|
|
|
|
|
For OS X users, the new QTKit and AVFoundation devices allow you to use
|
|
|
|
the integrated camera on Macs. AVFoundation is a newer API only available
|
|
|
|
on OS X 10.7 "Lion" or newer. For users with older OS X systems, the
|
|
|
|
QTKit device using the older OS X API is for you.
|
|
|
|
|
|
|
|
┌────────────────────────────┐
|
|
|
|
│ API Additions │
|
|
|
|
└────────────────────────────┘
|
|
|
|
|
|
|
|
In this release, stream side data are introduced as AVStream.side_data as
|
|
|
|
a way to store miscellaneous stream-wide information. The format is
|
|
|
|
similar to the previously anonymous structure AVPacket.side_data (now
|
|
|
|
named as AVPacketSideData). With this change, audio ReplayGain
|
|
|
|
information and video rotation matrix are now exported through this API,
|
|
|
|
if available in the demuxer.
|
|
|
|
|
|
|
|
We also have improved libswresample's Doxygen API documentation, so new
|
|
|
|
developers wishing to use FFmpeg's excellent libraries can get started
|
|
|
|
more easily and faster.
|
|
|
|
|
|
|
|
┌────────────────────────────┐
|
|
|
|
│ Last But Not Least │
|
|
|
|
└────────────────────────────┘
|
|
|
|
|
|
|
|
Other interesting new features including hqx video filter, a pixel art
|
|
|
|
scaling filter; a fixed-point AC-3 decoder contributed by Imagination
|
|
|
|
Technologies; an On2 TrueMotion VP7 video decoder; an HTML5 WebVTT
|
|
|
|
subtitle decoder that allows creation of WebVTT from any text-based
|
|
|
|
subtitles; and an 1-bit Direct Stream Digital audio decoder.
|
|
|
|
|
|
|
|
┌────────────────────────────┐
|
|
|
|
│ ★ List of New Features │
|
|
|
|
└────────────────────────────┘
|
|
|
|
|
|
|
|
┌────────────────────────────┐
|
|
|
|
│ Command line tools │
|
|
|
|
└────────────────────────────┘
|
|
|
|
|
|
|
|
• Support for decoding through DXVA2 in ffmpeg
|
|
|
|
|
|
|
|
┌────────────────────────────┐
|
|
|
|
│ libavcodec │
|
|
|
|
└────────────────────────────┘
|
|
|
|
|
|
|
|
• AC3 fixed-point decoding
|
|
|
|
• VP7 video decoder
|
|
|
|
• Alias PIX image encoder and decoder
|
|
|
|
• Improvements to the BRender PIX image decoder
|
|
|
|
• Improvements to the XBM decoder
|
|
|
|
• Improvements to OpenEXR image decoder
|
|
|
|
• Support decoding 16-bit RLE SGI images
|
|
|
|
• Direct Stream Digital (DSD) decoder
|
|
|
|
• On2 AVC (Audio for Video) decoder
|
|
|
|
• Native Opus decoder
|
|
|
|
• WebVTT encoder
|
|
|
|
|
|
|
|
┌────────────────────────────┐
|
|
|
|
│ libavdevice │
|
|
|
|
└────────────────────────────┘
|
|
|
|
|
|
|
|
• QTKit input device
|
|
|
|
• GDI screen grabbing for Windows
|
|
|
|
• AVFoundation input device
|
|
|
|
|
|
|
|
┌────────────────────────────┐
|
|
|
|
│ libavformat │
|
|
|
|
└────────────────────────────┘
|
|
|
|
|
|
|
|
• subfile protocol
|
|
|
|
• Phantom Cine demuxer
|
|
|
|
• Alternative rendition support for HTTP Live Streaming
|
|
|
|
• Magic Lantern Video (MLV) demuxer
|
|
|
|
• Image format auto-detection
|
|
|
|
• LRC lyric file demuxer and muxer
|
|
|
|
• Samba protocol (via libsmbclient)
|
|
|
|
|
|
|
|
┌────────────────────────────┐
|
|
|
|
│ libavfilter │
|
|
|
|
└────────────────────────────┘
|
|
|
|
|
|
|
|
• shuffleplanes filter
|
|
|
|
• libbs2b-based stereo-to-binaural audio filter
|
|
|
|
• showcqt multimedia filter
|
|
|
|
• zoompan filter
|
|
|
|
• signalstats filter
|
|
|
|
• hqx filter (hq2x, hq3x, hq4x)
|
|
|
|
• flanger filter
|
|
|
|
|
|
|
|
┌────────────────────────────┐
|
|
|
|
│ ⚠ Behaviour changes │
|
|
|
|
└────────────────────────────┘
|
|
|
|
|
|
|
|
• libx264 reference frames count is now limited depending on level chosen
|
|
|
|
• Because of the new image format auto-detection feature, you don't need to
|
|
|
|
specify image format when decoding an image with no extension.
|