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.
 |