• Omer Osman's avatar
    libfdk-aacdec: Enable Decoder Downmix including Downmix Metadata Support · b01a2204
    Omer Osman authored
    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: 's avatarMartin Storsjö <martin@martin.st>
    b01a2204
Name
Last commit
Last update
compat Loading commit data...
doc Loading commit data...
libavcodec Loading commit data...
libavdevice Loading commit data...
libavfilter Loading commit data...
libavformat Loading commit data...
libavresample Loading commit data...
libavutil Loading commit data...
libswscale Loading commit data...
presets Loading commit data...
tests Loading commit data...
tools Loading commit data...
.gitignore Loading commit data...
COPYING.GPLv2 Loading commit data...
COPYING.GPLv3 Loading commit data...
COPYING.LGPLv2.1 Loading commit data...
COPYING.LGPLv3 Loading commit data...
CREDITS Loading commit data...
Changelog Loading commit data...
INSTALL Loading commit data...
LICENSE Loading commit data...
Makefile Loading commit data...
README Loading commit data...
README.md Loading commit data...
RELEASE Loading commit data...
arch.mak Loading commit data...
avconv.c Loading commit data...
avconv.h Loading commit data...
avconv_dxva2.c Loading commit data...
avconv_filter.c Loading commit data...
avconv_opt.c Loading commit data...
avconv_vda.c Loading commit data...
avconv_vdpau.c Loading commit data...
avplay.c Loading commit data...
avprobe.c Loading commit data...
cmdutils.c Loading commit data...
cmdutils.h Loading commit data...
cmdutils_common_opts.h Loading commit data...
common.mak Loading commit data...
configure Loading commit data...
library.mak Loading commit data...
version.sh Loading commit data...