matroska
matroska copied to clipboard
The demuxer does not support CRC32 elements
here the broken vp9 sample.
Libav and mkvtoolnix have no problems in parsing it.
- [x] Support CRC-32 on top level elements
- [ ] Implement a proper CRC handling
Problem investigated, the current demuxer does not know anything about CRC32 elements.
Now we can parse the files but we aren't checking the crc.
Since #108, CRC elements are read and verified for every master element. What's missing now is the "proper" CRC handling:
If a Master Element contains a CRC-32 Element that doesn't validate, then the EBML Reader MAY ignore all contained data except for Descendant Elements that contain their own valid CRC-32 Element.
<CONTACT>
<CRC-32>c119a69b</CRC-32><!-- does not validate -->
<NAME>
<CRC-32>1f59ee2b</CRC-32><!-- does not validate -->
<FIRST-NAME>invalid data</FIRST-NAME>
<LAST-NAME>invalid data</LAST-NAME>
</NAME>
<ADDRESS>
<CRC-32>df941cc9</CRC-32><!-- validates -->
<STREET>valid data</STREET>
<CITY>valid data</CITY>
</ADDRESS>
</CONTACT>
In this case, the ADDRESS Element validates, so it MAY be used even though the rest of the CONTACT Element is invalid.
Modified @lu-zero list with @FreezyLemon update