• Anssi Hannula's avatar
    avcodec/aacdec: default to non-wide 7.1 in non-strict mode · e10fccf6
    Anssi Hannula authored
    AAC specification has 7.1(wide) as a default layout for 8-channel
    streams (channel config 7). However, at least Nero AAC encoder encodes
    non-wide 7.1 streams using the default channel config 7, mapping the
    side channels of the original audio stream to the second
    AAC_CHANNEL_FRONT pair in the AAC stream. Similarly, e.g. FAAD decodes
    the second AAC_CHANNEL_FRONT pair as side channels, therefore decoding
    the incorrect streams as if they were correct (and as the encoder
    intended).
    
    FFmpeg currently decodes such files by-the-spec, i.e. after decoding the
    original front pair will be in AV_CH_FRONT_x_OF_CENTER and the original
    side pair will be in AV_CH_FRONT_x.
    
    As actual intended 7.1(wide) streams are very rare while misencoded 7.1
    files actually exist in the wild, default to assuming a 7.1 layout was
    intended unless in strict mode.
    
    Fixes playback of e.g. 8_Channel_ID.m4a in samples.
    Signed-off-by: 's avatarAnssi Hannula <anssi.hannula@iki.fi>
    Signed-off-by: 's avatarMichael Niedermayer <michaelni@gmx.at>
    e10fccf6
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...
libpostproc Loading commit data...
libswresample 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...
MAINTAINERS Loading commit data...
Makefile Loading commit data...
README Loading commit data...
RELEASE Loading commit data...
arch.mak Loading commit data...
cmdutils.c Loading commit data...
cmdutils.h Loading commit data...
cmdutils_common_opts.h Loading commit data...
cmdutils_opencl.c Loading commit data...
common.mak Loading commit data...
configure Loading commit data...
ffmpeg.c Loading commit data...
ffmpeg.h Loading commit data...
ffmpeg_filter.c Loading commit data...
ffmpeg_opt.c Loading commit data...
ffmpeg_vdpau.c Loading commit data...
ffplay.c Loading commit data...
ffprobe.c Loading commit data...
ffserver.c Loading commit data...
library.mak Loading commit data...
version.sh Loading commit data...