[Matroska-devel] EBML

Steve Lhomme steve.lhomme at free.fr
Thu Feb 12 21:27:34 CET 2004


Martin Nilsson wrote:

> http://pike.ida.liu.se/generated/ebml.txt

[Isn't markup better than meta, since it's really markup we are doing?]

Yes.

You might add that EBML is octet/byte aligned (in addition of the 
network byte ordering). That would be a good addition to the VINT 
definition.


"As an example ID 1 from class A, encoded as 0x81, and ID 1 from class 
B, encoded as 0x4001, are considered different IDs."

Interresting point that was never raised before. IMO it should be 
avoided to use this case. And that's what we did with Matroska. It could 
impose some constraints on the parser behaviour which is IMO not 
necessary. I think there is enough IDs to avoid this (and BTW that means 
the number of IDs for class B, C and D are wrong because they should not 
contain elements of the other class).

The overlapping is allowed for the size coding and is actually needed as 
you mention (This allows for the element data to shrink without having 
to shrink the width of the size descriptor).


[Why not 0 bytes for 0?]

Good question. We never thought about that before. That could be a funny 
enhancement (although it would be harder to change a value that has no 
space for it).


"A string MAY be zero padded at the end."

You might add this to you ABNF notion (but I could no write it myself ;)
idem for UTF-8


"DATE = 8BYTE

Signed, 64-bit (8 byte) integer describing the distance to the beginning 
of the millennium"

You might add that it's in nanoseconds.



FYI, one of the EBML enhancement that is planned is to allow some kind 
of embedded DTD inside the EBML header, that would describe the 
hierarchy of the elements, their ID and their type (all in EBML format 
of course). This way it would be easy to spot known/unknown elements and 
interpret the value of some elements (maybe even with a human friendly 
name) even if you don't know the actual meaning.


I'm going to check the second chapter next.





More information about the Matroska-devel mailing list