76 lines
		
	
	
		
			3.6 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
			
		
		
	
	
			76 lines
		
	
	
		
			3.6 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
| Release Notes
 | |
| =============
 | |
| 
 | |
| * 11 "One Louder"
 | |
| 
 | |
| General notes
 | |
| -------------
 | |
| 
 | |
| With this release we are trying to answer the numerous calls from our users for
 | |
| shorter development cycles. From now on we will aim for approximately two major
 | |
| releases per year.
 | |
| 
 | |
| Libav 11 is API-, but not ABI-compatible with the previous major release. This
 | |
| means that the code using our libraries needs to be rebuilt, but no source
 | |
| changes should be required. Note however, that a number of old APIs remain
 | |
| deprecated and will be dropped in the near future. All users are strongly
 | |
| encouraged to update their code as soon as possible. The doc/APIchanges file in
 | |
| the Libav source tree and the migration guide on the wiki should help with
 | |
| migration to the new APIs. If those are not sufficient, do not hesitate to
 | |
| contact us on IRC or through the user mailing list.
 | |
| 
 | |
| One specific API issue in libavformat deserves mentioning here. When using
 | |
| libavcodec for decoding or encoding and libavformat for demuxing or muxing,
 | |
| the standard practice was to use the stream codec context (AVStream.codec) for
 | |
| actual decoding or encoding. There are multiple problems with this pattern
 | |
| (the main one is that the decoder/demuxer or encoder/muxer are not necessarily
 | |
| synchronized and may overwrite each other's state), so it is now strongly
 | |
| discouraged and will likely be deprecated in the future. Users should instead
 | |
| allocate a separate decoding or encoding context and populate it from the
 | |
| demuxing codec context (or the reverse for encoding) with the
 | |
| avcodec_copy_context() function.
 | |
| 
 | |
| The main highlights of this release include native Opus, VP7, OpenEXR, and On2
 | |
| AVC decoders, HEVC encoding through libx265, new APIs for exporting ReplayGain
 | |
| and display transformation metadata and countless bug fixes. A large effort was
 | |
| also expended on internal cleanups which are not very visible to our users,
 | |
| but should make the codebase cleaner, safer and easier to maintain and extend.
 | |
| One point worth mentioning is refactoring the large monolithic framework for
 | |
| architecture-specific codec optimizations into small blocks, which reduces the
 | |
| size of configurations that selectively enable or disable certain codecs.
 | |
| 
 | |
| The avserver streaming tool, which has not been maintained for many years and
 | |
| was mostly broken, was removed from the tree. It was decided that it is a
 | |
| significant maintenance burden and that we do our users no service by pretending
 | |
| to support it, while we in fact do not.
 | |
| 
 | |
| See the Changelog file for a more extensive list of significant changes.
 | |
| 
 | |
| 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:
 | |
| 
 | |
| [libavcodec]
 | |
| +  Added the avcodec_copy_context() function that must from now on be used for
 | |
|    freeing codec contexts.
 | |
| +- Added a new VDA hardware acceleration API, since the old one was broken and
 | |
|    not fixable in a compatible way. Deprecated the old VDA API.
 | |
| 
 | |
| [libavformat]
 | |
| +  Added support for exporting stream-global (as opposed to per-packet) side
 | |
|    data. This feature is now used by some demuxers to export ReplayGain or
 | |
|    display transformation matrix (aka rotation) or stereoscopic 3D mode.
 | |
| +  Added an API for live metadata updates through event flags.
 | |
| +- Changed the way to provide a hint about the desired timebase to muxers.
 | |
|    Previously it was done by setting AVStream.codec.time_base. Now callers
 | |
|    should set AVStream.time_base.
 | |
| 
 | |
| [libavresample]
 | |
| + Added an API for working with AVFrames.
 | |
| 
 | |
| Please see the file doc/APIchanges for details along with similar
 | |
| programmer-centric information.
 |