Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

The demuxer does not support CRC32 elements #10

Open
1 of 2 tasks
lu-zero opened this issue Sep 29, 2018 · 4 comments
Open
1 of 2 tasks

The demuxer does not support CRC32 elements #10

lu-zero opened this issue Sep 29, 2018 · 4 comments
Labels
bug spec-compliance Related to EBML or Matroska specification compliance

Comments

@lu-zero
Copy link
Member

lu-zero commented Sep 29, 2018

here the broken vp9 sample.

Libav and mkvtoolnix have no problems in parsing it.

  • Support CRC-32 on top level elements
  • Implement a proper CRC handling
@lu-zero lu-zero added the bug label Sep 29, 2018
@lu-zero lu-zero changed the title Demuxing is broken on recent files produced by the current FFmpeg master The demuxer does not suppor CRC32 elements Oct 3, 2018
@lu-zero
Copy link
Member Author

lu-zero commented Oct 3, 2018

Problem investigated, the current demuxer does not know anything about CRC32 elements.

@lu-zero lu-zero changed the title The demuxer does not suppor CRC32 elements The demuxer does not support CRC32 elements Oct 3, 2018
lu-zero added a commit that referenced this issue Oct 4, 2018
lu-zero added a commit that referenced this issue Oct 4, 2018
Partially address #10, the crc is not validated as should yet.
@lu-zero
Copy link
Member Author

lu-zero commented Oct 4, 2018

Now we can parse the files but we aren't checking the crc.

@FreezyLemon
Copy link
Contributor

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.

@Luni-4
Copy link
Member

Luni-4 commented Apr 11, 2023

Modified @lu-zero list with @FreezyLemon update

@FreezyLemon FreezyLemon added the spec-compliance Related to EBML or Matroska specification compliance label Apr 21, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug spec-compliance Related to EBML or Matroska specification compliance
Projects
None yet
Development

No branches or pull requests

3 participants