You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

76 lines
3.6KB

  1. Release Notes
  2. =============
  3. * 11 "One Louder"
  4. General notes
  5. -------------
  6. With this release we are trying to answer the numerous calls from our users for
  7. shorter development cycles. From now on we will aim for approximately two major
  8. releases per year.
  9. Libav 11 is API-, but not ABI-compatible with the previous major release. This
  10. means that the code using our libraries needs to be rebuilt, but no source
  11. changes should be required. Note however, that a number of old APIs remain
  12. deprecated and will be dropped in the near future. All users are strongly
  13. encouraged to update their code as soon as possible. The doc/APIchanges file in
  14. the Libav source tree and the migration guide on the wiki should help with
  15. migration to the new APIs. If those are not sufficient, do not hesitate to
  16. contact us on IRC or through the user mailing list.
  17. One specific API issue in libavformat deserves mentioning here. When using
  18. libavcodec for decoding or encoding and libavformat for demuxing or muxing,
  19. the standard practice was to use the stream codec context (AVStream.codec) for
  20. actual decoding or encoding. There are multiple problems with this pattern
  21. (the main one is that the decoder/demuxer or encoder/muxer are not necessarily
  22. synchronized and may overwrite each other's state), so it is now strongly
  23. discouraged and will likely be deprecated in the future. Users should instead
  24. allocate a separate decoding or encoding context and populate it from the
  25. demuxing codec context (or the reverse for encoding) with the
  26. avcodec_copy_context() function.
  27. The main highlights of this release include native Opus, VP7, OpenEXR, and On2
  28. AVC decoders, HEVC encoding through libx265, new APIs for exporting ReplayGain
  29. and display transformation metadata and countless bug fixes. A large effort was
  30. also expended on internal cleanups which are not very visible to our users,
  31. but should make the codebase cleaner, safer and easier to maintain and extend.
  32. One point worth mentioning is refactoring the large monolithic framework for
  33. architecture-specific codec optimizations into small blocks, which reduces the
  34. size of configurations that selectively enable or disable certain codecs.
  35. The avserver streaming tool, which has not been maintained for many years and
  36. was mostly broken, was removed from the tree. It was decided that it is a
  37. significant maintenance burden and that we do our users no service by pretending
  38. to support it, while we in fact do not.
  39. See the Changelog file for a more extensive list of significant changes.
  40. API changes
  41. -----------
  42. A number of additional APIs have been introduced and some existing functions
  43. have been deprecated and are scheduled for removal in the next release.
  44. Significant API changes include:
  45. [libavcodec]
  46. + Added the avcodec_copy_context() function that must from now on be used for
  47. freeing codec contexts.
  48. +- Added a new VDA hardware acceleration API, since the old one was broken and
  49. not fixable in a compatible way. Deprecated the old VDA API.
  50. [libavformat]
  51. + Added support for exporting stream-global (as opposed to per-packet) side
  52. data. This feature is now used by some demuxers to export ReplayGain or
  53. display transformation matrix (aka rotation) or stereoscopic 3D mode.
  54. + Added an API for live metadata updates through event flags.
  55. +- Changed the way to provide a hint about the desired timebase to muxers.
  56. Previously it was done by setting AVStream.codec.time_base. Now callers
  57. should set AVStream.time_base.
  58. [libavresample]
  59. + Added an API for working with AVFrames.
  60. Please see the file doc/APIchanges for details along with similar
  61. programmer-centric information.