Skip to content
New issue

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

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

Already on GitHub? # 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.