1Release Notes 2============= 3 4* 0.8 "Forbidden Fruit" 5 6General notes 7------------- 8 9This release continues the API cleanups that have begun with the 10previous release. While it is binary compatible with 0.7, many parts of 11the public API were deprecated and will be removed in the git master and 12later releases. Please consult the doc/APIchanges file to see 13intended replacements for the deprecated APIs. 14 15Furthermore, our work on the 'ffmpeg' command-line tool has resulted in 16major revisions to its interface. In order to not break existing scripts 17and applications, we have chosen to introduce a new tool called 18'avconv', and keep the traditional 'ffmpeg' frontend for end-user's 19convenience. Please see the Changelog file for details how 'avconv' 20differs from 'ffmpeg'. 21 22Additionally, this release introduces a number of new interesting codecs 23such as the Apple Prores, Flash Screen Video 2 and Windows Media Image, 24and muxers such as LATM or CELT in Ogg, among many others. Moreover, our 25H.264 decoder has been improved to decode 4:2:2 material and our libx264 26wrapper now allows to produce 4:2:2 and 4:4:4 video. 27 28See the Changelog file for a list of significant changes. 29 30Please note that our policy on bug reports has not changed. We still only accept 31bug reports against HEAD of the Libav trunk repository. If you are experiencing 32issues with any formally released version of Libav, please try a current version 33of the development code to check if the issue still exists. If it does, make your 34report against the development code following the usual bug reporting guidelines. 35 36 37API changes 38----------- 39 40A number of additional APIs have been introduced and some existing 41functions have been deprecated and are scheduled for removal in the next 42release. Significant API changes include: 43 44* new audio decoding API which decodes from an AVPacket to an AVFrame and 45is able to use AVCodecContext.get_buffer() in the similar way as video decoding. 46 47* new audio encoding API which encodes from an AVFrame to an AVPacket, thus 48allowing it to properly output timing information and side data. 49 50* rewritten AVOptions API with better built-in support for private options. 51 52* private options support for demuxers [avformat_open_input()], muxers 53[avformat_write_header()], encoders and decoders [avcodec_open2()]. 54As a result, many format- or codec-specific fields and flags in AVFormatContext 55and AVCodecContext were deprecated -- notably most of CODEC_FLAG2_* and many 56CODEC_FLAG_*. 57 58* new API for custom IO interrupt callbacks. 59 60* #include cleanup in libavutil -- libavutil/avutil.h no longer includes all 61the other headers in libavutil, they must be included manually. One specific 62result is that libavutil/mathematics.h is no longer included from 63libavcodec/avcodec.h, which is a common source of errors. 64 65Please see the file doc/APIchanges for details along with 66similar programmer-centric information. 67 68 69 70Other notable changes 71--------------------- 72 73Libavcodec and libavformat built as shared libraries now hide non-public 74symbols. This will break applications using those symbols. Possible solutions 75are, in order of preference: 761) Try finding a way of accomplishing the same with public API. 772) If there is no corresponding public API, but you think there should be, 78post a request on the user mailing list or IRC channel. 793) Finally if your program needs access to Libav internals for some special 80reason then the best solution is to link statically. 81 82Please see the Changelog file for a more detailed list of changes. 83