• wm4's avatar
    avformat/mp3: large id3 tags break concatenated file detection · 537ab680
    wm4 authored
    If the file size is much larger than what is indicated in the XING
    header, the demuxer assumes it's a concatenated file, and throws away
    the (presumably) incorrect duration information. Unfortunately, this
    also triggers if the id3 tags are very large (embedded pictures and
    such). Then the half-baked heuristic not only breaks the duration
    display, but also gapless audio.
    
    Fix it by subtracting the size of the headers (the check is off by some
    bytes, but that doesn't matter at all). Note that there could be an
    arbitrary amount of tags _after_ the mp3 data, but hopefully these are
    not too large to trigger the heuristic in practice.
    
    Also add a warning when this happens.
    Signed-off-by: 's avatarMichael Niedermayer <michaelni@gmx.at>
    537ab680
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...
.gitattributes 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.md Loading commit data...
LICENSE.md Loading commit data...
MAINTAINERS Loading commit data...
Makefile Loading commit data...
README.md 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_dxva2.c Loading commit data...
ffmpeg_filter.c Loading commit data...
ffmpeg_opt.c Loading commit data...
ffmpeg_vda.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...
ffserver_config.c Loading commit data...
ffserver_config.h Loading commit data...
library.mak Loading commit data...
version.sh Loading commit data...