• wm4's avatar
    id3v2: fix unsynchronization · 48bc9fff
    wm4 authored
    The ID3v2 "unsynchronization scheme" requires replacing any 0xFF 0x00
    sequences with 0xFF. This has to be done on every byte of the source
    data, while the current code skipped a byte after a replacement. This
    meant 0xFF 0x00 0xFF 00 was translated to 0xFF 0xFF 0x00 instead of 0xFF
    0xFF. It feels a bit messy to do this correctly with the avio use. But
    fortunately, this translation can be done in-place, so we can just do it
    in memory.
    
    Inspired by what taglib does.
    
    Also see 9ae80e6a. (The sample file for
    that commit is gone, so it could not be retested.)
    48bc9fff
Name
Last commit
Last update
compat Loading commit data...
doc Loading commit data...
ffbuild Loading commit data...
fftools 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...
.travis.yml Loading commit data...
CONTRIBUTING.md 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...
configure Loading commit data...