Go to file
Omer Osman b01a2204b5 libfdk-aacdec: Enable Decoder Downmix including Downmix Metadata Support
The FDK decoder is capable of producing mono and stereo downmix from
multichannel streams. These streams may contain metadata that control
the downmix process. The decoder requires an Ancillary Buffer in order to
correctly apply downmix in streams containing downmix Metadata. The
decoder does not have an API interface to inform of the presence of
Metadata in the stream, and therefore the Ancillary Buffer is always
allocated whenever a downmix is requested.

When downmixing multichannel streams, the decoder requires the output
buffer in aacDecoder_DecodeFrame call to be of fixed size in order to
hold the actual number of channels contained in the stream. For example,
for a 5.1ch to stereo downmix, the decoder requires that the output buffer
is allocated for 6 channels, regardless of the fact that the output is in
fact two channels.

Due to this requirement, the output buffer is allocated for the maximum
output buffer size in case a downmix is requested (and also during
decoder init). When a downmix is requested, the buffer used for output
during init will also be used for the entire duration the decoder is open.
Otherwise, the initial decoder output buffer is freed and the decoder
decodes straight into the output AVFrame.

Signed-off-by: Martin Storsjö <martin@martin.st>
2014-10-17 15:48:30 +03:00
compat w32pthreads: use the condition variable API directly when targeting newer versions of Windows 2014-10-10 11:27:30 +03:00
doc lavc: deprecate the use of AVCodecContext.time_base for decoding 2014-10-15 06:37:43 +00:00
libavcodec libfdk-aacdec: Enable Decoder Downmix including Downmix Metadata Support 2014-10-17 15:48:30 +03:00
libavdevice x11grab: Check the XQueryPointer return value 2014-10-04 23:46:46 +02:00
libavfilter setpts: Add missing inttypes.h #include for PRId64 2014-08-21 04:18:24 -07:00
libavformat rtmpproto: Add getStreamLength call to query duration 2014-10-17 12:07:19 +03:00
libavresample lavr: Update the planar check in ff_audio_convert 2014-08-17 16:11:02 +02:00
libavutil pixdesc: return color properties names 2014-10-08 18:17:49 +01:00
libswscale Bump major versions of all libraries. 2014-08-09 16:58:33 +00:00
presets presets: spelling error in libvpx 1080p50_60 2011-10-22 00:28:56 +02:00
tests fate: add mpeg4 tests for frame size changes 2014-10-17 09:58:31 +02:00
tools ismindex: use tfhd default duration if no sample duration 2014-10-16 09:22:22 +03:00
.gitignore fate: Split fate-pixdesc tests and dispatch them through Make 2014-08-01 01:18:30 -07:00
arch.mak aarch64: add armv8 CPU flag 2014-04-06 21:18:49 +02:00
avconv_dxva2.c avconv_dxva2: define all used GUIDs directly instead of relying on the dxva2api.h header 2014-04-29 16:50:43 +02:00
avconv_filter.c avconv: fix leak in filter error 2014-10-17 09:55:46 +01:00
avconv_opt.c avconv: fix parsing the AVOptions for -target 2014-08-27 06:21:55 +00:00
avconv_vda.c avconv: Support VDA hwaccel 2014-05-11 15:00:03 +02:00
avconv_vdpau.c avconv_vdpau: update to new VDPAU interface 2014-10-06 06:20:40 +00:00
avconv.c avconv: check return value 2014-10-17 09:55:46 +01:00
avconv.h avconv: do not use the stream codec context for encoding 2014-06-01 08:33:21 +02:00
avplay.c avplay: Always free opts 2014-10-17 09:55:46 +01:00
avprobe.c avprobe: Remove a pointless check 2014-10-17 09:55:46 +01:00
Changelog rtpenc: HEVC/H.265 support 2014-09-24 23:33:26 +03:00
cmdutils_common_opts.h avplay: Accept cpuflags option 2013-10-22 10:49:31 +02:00
cmdutils.c cmdutils: Use the correct guard 2014-10-17 09:55:46 +01:00
cmdutils.h cmdutils: Mark exit_program as av_noreturn 2014-03-28 00:40:43 +01:00
common.mak build: export library dependencies in ${name}_FFLIBS 2014-05-20 00:43:51 +02:00
configure w32pthreads: use the CONDITION_VARIABLE typedef if available 2014-10-10 11:27:26 +03:00
COPYING.GPLv2 Rename COPYING.GPL --> COPYING.GPLv2 and COPYING.LGPL --> COPYING.LGPLv2.1. 2009-06-05 09:51:31 +00:00
COPYING.GPLv3 Add configure option to upgrade (L)GPL to version 3. 2009-06-05 11:04:03 +00:00
COPYING.LGPLv2.1 cosmetics: Delete empty lines at end of file. 2012-02-09 12:26:45 +01:00
COPYING.LGPLv3 Add configure option to upgrade (L)GPL to version 3. 2009-06-05 11:04:03 +00:00
CREDITS partially rename FFmpeg to Libav 2011-03-16 21:54:39 +01:00
INSTALL doc: clarify configure features 2011-04-07 02:54:12 +02:00
library.mak build: Support executable only ldflags 2014-07-21 22:18:35 +02:00
LICENSE license: Mention that vf_interlace is GPL, not LGPL 2014-08-28 19:47:43 +02:00
Makefile configure: add support for neon intrinsics 2014-07-21 23:18:29 +02:00
README doc: Add more information in the README 2014-08-16 00:49:22 +02:00
README.md doc: Add more information in the README 2014-08-16 00:49:22 +02:00
RELEASE Prepare for 11_beta2 Release 2014-08-23 10:12:16 -04:00
version.sh Drop git- prefix from version labels 2011-06-19 19:41:23 +01:00

Libav

Libav is a collection of libraries and tools to process multimedia content such as audio, video, subtitles and related metadata.

Libraries

  • libavcodec provides implementation of a wider range of codecs.
  • libavformat implements streaming protocols, container formats and basic I/O access.
  • libavutil includes hashers, decompressors and miscellaneous utility functions.
  • libavfilter provides a mean to alter decoded Audio and Video through chain of filters.
  • libavdevice provides an abstraction to access capture and playback devices.
  • libavresample implements audio mixing and resampling routines.
  • libswscale implements color conversion and scaling routines.

Tools

  • avconv is a command line toolbox to manipulate, convert and stream multimedia content.
  • avplay is a minimalistic multimedia player.
  • avprobe is a simple analisys tool to inspect multimedia content.
  • Additional small tools such as aviocat, ismindex and qt-faststart.

Documentation

The offline documentation is available in the doc/ directory.

The online documentation is available in the main website and in the wiki.

Examples

Conding examples are available in the doc/example directory.

License

Libav codebase is mainly LGPL-licensed with optional components licensed under GPL. Please refer to the LICENSE file for detailed information.