• wm4's avatar
    matroskadec: verify seekhead IDs · 7e240f95
    wm4 authored
    Some files have SeekHead elements with broken IDs. They mismatch with
    the ID of the destination element. These files are written by
    "IDMmkvlib0.1" (as identified by the MuxingApp and WritingApp elements),
    and the SeekHead IDs are actually endian-swapped.
    
    This confuses the SeekHead logic of the demuxer. It will read some
    elements twice, because the SeekHead ID is used to identify and remember
    already read elements. With the file at hand, the stream list was
    duplicated by reading the Tracks element twice.
    
    Fix this by rejecting invalid EBML IDs in SeekHead entries. (This fix is
    relatively specific to the broken file at hand, and doesn't protect
    against some other cases of broken SeekHead, such as valid but
    mismatching target element IDs.)
    Signed-off-by: 's avatarMichael Niedermayer <michaelni@gmx.at>
    7e240f95
matroskadec.c 125 KB