• Andreas Rheinhardt's avatar
    avformat/matroskadec: Improve forward compability · b577968c
    Andreas Rheinhardt authored
    Matroska is built around the principle that a reader does not need to
    understand everything in a file in order to be able to make use of it;
    it just needs to ignore the data it doesn't know about.
    
    Our demuxer typically follows this principle, but there is one important
    instance where it does not: A Block belonging to a TrackEntry with no
    associated stream is treated as invalid data (i.e. the demuxer will try
    to resync to the next level 1 element because it takes this as a sign
    that it has lost sync). Given that we do not create streams if we don't
    know or don't support the type of the TrackEntry, this impairs this
    demuxer's forward compability.
    
    Furthermore, ignoring Blocks belonging to a TrackEntry without
    corresponding stream can (in future commits) also be used to ignore
    TrackEntries with obviously bogus entries without affecting the other
    TrackEntries (by not creating a stream for said TrackEntry).
    
    Finally, given that matroska_find_track_by_num() already emits its own
    error message in case there is no TrackEntry with a given TrackNumber,
    the error message (with level AV_LOG_INFO) for this can be removed.
    Signed-off-by: 's avatarAndreas Rheinhardt <andreas.rheinhardt@gmail.com>
    b577968c
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...
.mailmap 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...