Skip to content
Snippets Groups Projects
RELEASE_NOTES 3.92 KiB
Newer Older
  • Learn to ignore specific revisions
  • Reinhard Tartler's avatar
    Reinhard Tartler committed
    Release Notes
    =============
    
    
    Reinhard Tartler's avatar
    Reinhard Tartler committed
    
    General notes
    -------------
    
    
    One of the main features of this release is the addition of reference-counted
    data buffers to Libav and their use in various structures. Specifically, the
    data buffers used by AVPacket and AVFrame can now be reference counted, which
    should allow to significantly simplify many use cases. In addition,
    reference-counted AVFrames can now be used in libavfilter, avoiding the need
    for a separate libavfilter-specific frame structure. Frames can now be passed
    straight from the decoders into filters or from filters to encoders.
    
    These additions made it necessary to bump the major versions of libavcodec,
    libavformat, libavdevice, libavfilter, and libavutil, which was accompanied by
    dropping some old deprecated APIs. These libraries are thus not ABI- or API-
    compatible with the previous release. All the other libraries (libavresample
    and libswscale) should be both ABI- and API-compatible.
    
    Another major point is the inclusion of the HEVC (AKA H.265, the successor of
    H.264) decoder in the main codebase. It was started in 2012 as a Libav Google
    Summer of Code project by Guillaume Martres and subsequently completed with
    the assistance of the OpenHEVC project and several Libav developers.
    
    As usual, this release also contains support for other new formats, many smaller
    new features and countless bug fixes. We can highlight a native VP9 decoder,
    with encoding provided through libvpx, native decoders for WebP, JPEG 2000, and
    AIC, as well as improved WavPack support with encoding through libwavpack,
    support for more AAC flavors (LD - low delay, ELD - enhanced low delay), slice
    
    multithreading in libavfilter, or muxing chapters in ASF. Furthermore a few new
    filters have been introduced, namely compand, to change audio dynamics, framepack,
    to create stereoscopic videos, asetpts, to set audio pts, and interlace, to convert
    progressive video to interlaced. Finally there is more fine-grained detection of
    host and target libc, which should allow better portability to various cross
    compilation scenarios.
    
    
    See the Changelog file for a fuller list of significant changes.
    
    Reinhard Tartler's avatar
    Reinhard Tartler committed
    
    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.
    
    Reinhard Tartler's avatar
    Reinhard Tartler committed
    
    
    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:
    
    [libavutil]
    + added the reference-counted buffers API (buffers.h)
    + moved the AVFrame struct to libavutil and added a new API for working with
      reference-counted AVFrames (frame.h)
    
    [libavcodec]
    + added an API for working with reference-counted AVPackets (av_packet_*)
    +- converted VDPAU to the hwaccel framework; the old way of using VDPAU is no
       longer supported
    - old audio encoding and decoding APIs removed
    - old video encoding API removed
    - deprecated enum CodecID removed (enum AVCodecID should be used instead)
    - deprecated audio resampling API removed (libavresample should be used
      instead)
    
    [libavfilter]
    +- replaced AVFilterBufferRef with AVFrame; AVFilterBufferRef and everything
       related to it still exists, but is deprecated
    + converted all filters to use the AVOptions system for configuration, it is
      now possible to query the supported options, their values and set them
      directly with av_opt_*
    + added a slice multithreading framework
    +- merged avfiltergraph.h to avfilter.h, using AVFilterGraph is now explicitly
       mandatory (it was implicitly required even before); added new API for
       allocating and initializing filters
    
    Reinhard Tartler's avatar
    Reinhard Tartler committed
    
    
    Please see the file doc/APIchanges for details along with similar
    programmer-centric information.