|
|
|
Release Notes
|
|
|
|
=============
|
|
|
|
|
|
|
|
* 0.8 "Forbidden Fruit"
|
|
|
|
|
|
|
|
General notes
|
|
|
|
-------------
|
|
|
|
|
|
|
|
This release continues the API cleanups that have begun with the
|
|
|
|
previous release. While it is binary compatible with 0.7, many parts of
|
|
|
|
the public API were deprecated and will be removed in the git master and
|
|
|
|
later releases. Please consult the doc/APIchanges file to see
|
|
|
|
intended replacements for the deprecated APIs.
|
|
|
|
|
|
|
|
Furthermore, our work on the 'ffmpeg' command-line tool has resulted in
|
|
|
|
major revisions to its interface. In order to not break existing scripts
|
|
|
|
and applications, we have chosen to introduce a new tool called
|
|
|
|
'avconv', and keep the traditional 'ffmpeg' frontend for end-user's
|
|
|
|
convenience. Please see the Changelog file for details how 'avconv'
|
|
|
|
differs from 'ffmpeg'.
|
|
|
|
|
|
|
|
Additionally, this release introduces a number of new interesting codecs
|
|
|
|
such as the Apple Prores, Flash Screen Video 2 and Windows Media Image,
|
|
|
|
and muxers such as LATM or CELT in Ogg, among many others. Moreover, our
|
|
|
|
H.264 decoder has been improved to decode 4:2:2 material and our libx264
|
|
|
|
wrapper now allows to produce 4:2:2 and 4:4:4 video.
|
|
|
|
|
|
|
|
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
|
|
|
|
bug reports against HEAD of the Libav trunk repository. If you are experiencing
|
|
|
|
issues with any formally released version of Libav, please try a current version
|
|
|
|
of the development code to check if the issue still exists. If it does, make your
|
|
|
|
report against the development code following the usual bug reporting guidelines.
|
|
|
|
|
|
|
|
|
|
|
|
API changes
|
|
|
|
-----------
|
|
|
|
|
|
|
|
A number of additional APIs have been introduced and some existing
|
|
|
|
functions have been deprecated and are scheduled for removal in the next
|
|
|
|
release. Significant API changes include:
|
|
|
|
|
|
|
|
* new audio decoding API which decodes from an AVPacket to an AVFrame and
|
|
|
|
is able to use AVCodecContext.get_buffer() in the similar way as video decoding.
|
|
|
|
|
|
|
|
* new audio encoding API which encodes from an AVFrame to an AVPacket, thus
|
|
|
|
allowing it to properly output timing information and side data.
|
|
|
|
|
|
|
|
* rewritten AVOptions API with better built-in support for private options.
|
|
|
|
|
|
|
|
* private options support for demuxers [avformat_open_input()], muxers
|
|
|
|
[avformat_write_header()], encoders and decoders [avcodec_open2()].
|
|
|
|
As a result, many format- or codec-specific fields and flags in AVFormatContext
|
|
|
|
and AVCodecContext were deprecated -- notably most of CODEC_FLAG2_* and many
|
|
|
|
CODEC_FLAG_*.
|
|
|
|
|
|
|
|
* new API for custom IO interrupt callbacks.
|
|
|
|
|
|
|
|
* #include cleanup in libavutil -- libavutil/avutil.h no longer includes all
|
|
|
|
the other headers in libavutil, they must be included manually. One specific
|
|
|
|
result is that libavutil/mathematics.h is no longer included from
|
|
|
|
libavcodec/avcodec.h, which is a common source of errors.
|
|
|
|
|
|
|
|
Please see the file doc/APIchanges for details along with
|
|
|
|
similar programmer-centric information.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Other notable changes
|
|
|
|
---------------------
|
|
|
|
|
|
|
|
Libavcodec and libavformat built as shared libraries now hide non-public
|
|
|
|
symbols. This will break applications using those symbols. Possible solutions
|
|
|
|
are, in order of preference:
|
|
|
|
1) Try finding a way of accomplishing the same with public API.
|
|
|
|
2) If there is no corresponding public API, but you think there should be,
|
|
|
|
post a request on the user mailing list or IRC channel.
|
|
|
|
3) Finally if your program needs access to Libav internals for some special
|
|
|
|
reason then the best solution is to link statically.
|
|
|
|
|
|
|
|
Please see the Changelog file for a more detailed list of changes.
|