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

Valid but should they be #2

Open
wants to merge 11 commits into
base: master
Choose a base branch
from
Binary file not shown.
Binary file not shown.
Binary file added invalid_ebml/currently_undefined_EBMLVersion.mkv
Binary file not shown.
Binary file not shown.
Binary file added invalid_ebml/empty_DocType.mkv
Binary file not shown.
Binary file not shown.
Binary file added invalid_ebml/level_0_crc.mkv
Binary file not shown.
Binary file added invalid_ebml/level_0_void.mkv
Binary file not shown.
Binary file added invalid_ebml/no_DocType.mkv
Binary file not shown.
66 changes: 66 additions & 0 deletions invalid_ebml/readme.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,66 @@
# valid files

## reference.mkv

A reference file was produced via:

```
ffmpeg -f lavfi -i mandelbrot=s=320x280:r=25 -f lavfi -i sine -t 0.5 -c:v ffv1 -c:a flac reference.mkv
mkclean reference.mkv
```

# invalid files

## no_DocType.mkv

The EBML Header contains no mandated DocType Element.

[no_DocType.mkv](no_DocType.mkv)

## docTypeReadVersion_greaterthan_docTypeVersion.mkv

The docTypeReadVersion MUST be less than docTypeVersion but here it isn't.

[docTypeReadVersion_greaterthan_docTypeVersion.mkv](docTypeReadVersion_greaterthan_docTypeVersion.mkv)

## EBMLReadVersion_greaterthan_EBMLVersion.mkv

The EBMLReadVersion MUST be less than EBMLVersion but here it isn't.

[EBMLReadVersion_greaterthan_EBMLVersion.mkv](EBMLReadVersion_greaterthan_EBMLVersion.mkv)

## currently_undefined_EBMLVersion.mkv

The EBMLVersion is restricted to a range of defined values. At the time of this writing, only EBMLVersion=1 is defined. This value has an EBMLVersion of 255.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It's not invalid if EBMLReadVersion is 1.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

in EBML draft the EBMLVersion has a range of 1 reference as that is the only defined version of EBML, so EBMLVersion=2 is invalid since it goes outside of the range.


[currently_undefined_EBMLVersion.mkv](currently_undefined_EBMLVersion.mkv)


## level_0_crc.mkv

The CRC-32 Element is not allowed at Level 0 but here it is included in between the EBML Header and Segment Element.
[level_0_crc.mkv](level_0_crc.mkv)

## too_many_copies_of_DocTypeVersion.mkv

DocTypeVersion has maxOccurs=1 but here it is included twice in the EBML Header.

[too_many_copies_of_DocTypeVersion.mkv](too_many_copies_of_DocTypeVersion.mkv)

## too_many_copies_of_DocTypeVersion_and_conflicting_values.mkv

Similar to [too_many_copies_of_DocTypeVersion.mkv](too_many_copies_of_DocTypeVersion.mkv) but here the two copies of DocTypeVersion include conflicting values, `3` and `4`.

[too_many_copies_of_DocTypeVersion_and_conflicting_values.mkv](too_many_copies_of_DocTypeVersion_and_conflicting_values.mkv)

## invalid_EBML_ElementDataSize_in_EBMLHeader.mkv

The Elements of the EBML Header are restricted to Element Data Size values that are 4 octets in length or less. This file includes a 5 octet long Element Data Size for DocType.

[invalid_EBML_ElementDataSize_in_EBMLHeader.mkv](invalid_EBML_ElementDataSize_in_EBMLHeader.mkv)

## really_invalid_EBML_ElementDataSize_in_EBMLHeader.mkv

Similar to [invalid_EBML_ElementDataSize_in_EBMLHeader.mkv](invalid_EBML_ElementDataSize_in_EBMLHeader.mkv) but the Element Data Size of the DocType Element is 9 octets long.
[really_invalid_EBML_ElementDataSize_in_EBMLHeader.mkv](really_invalid_EBML_ElementDataSize_in_EBMLHeader.mkv)

Binary file not shown.
Binary file added invalid_ebml/reference.mkv
Binary file not shown.
Binary file not shown.
Binary file not shown.