[Matroska-devel] Re: EBML

Martin Nilsson matroska at mani.user.lysator.liu.se
Tue Feb 17 07:26:51 CET 2004


Paul Bryson wrote:

> The format is certainly not perfect, but it is to late to make major changes to
> the basic design as there is already to large of a user base.  Additions are the
> most likely thing to work.  There is actually a push to formalize a version 1.0
> specification so that changes can be made for version 2 or 3 featuring
> improvements, without breaking current tools.

I have not had the time to read through and evaluate everything 
carefully yet, but I'm really happy with most of what I've seen. One of 
the good lessons from ID3v2 was to put a lot of effort in making a well 
documented, easy to use, feature complete, cross platform library. If 
you do that, and keep the library able to handle all versions of your 
format, you are free to do pretty much anything with the format.

To instead invest a lot of time and effort into a lot of really clever 
compatibility things in the standard, as we did in ID3v2, is not a good 
way. It makes the standard really cluttered, hard to interpret and 
implement and in the end it turned out that every new version had to be 
incompatible anyway. So it's better to come clean up front and tell 
everyone that the next version will be incompatible. If you don't want 
to deal with it, use our lib.

What I do like to see is a reduced library dependency. To completely 
support matroska I would have to support RSA and ECDSA. SHA1 and MD5.
z-compression, bz-compression and lzo-compression. DES, 3DES, Twofish, 
Blowfish and AES. To name a few standards.

I don't think there is something wrong with deciding for the user in 
some of these issues. AES is proven better than the other cipher 
algorithms. SHA1 is proven better than MD5. The NIST reports are there 
for everyone to read, so there is really no technical reason to allow 
all of these algorithms.

Similarly when something can be normalized into one unit or format I 
think it should. Why allow for DisplayUnit to be both centimeters and 
inches? Inch is _defined_ in centimeters. Or why have support for five 
different subtitle formats when two would be enough; One format which 
the textual formats could be normalized into (EBML based?) and one 
bitmap format (perhaps based on PNG with alpha channels?). I realize 
that this is something that must have been up for discussion (sorry, I 
have not had the time to read up in the list archive either), but I'll 
just use these specific examples to back my general suggestion: reduce 
dependencies, e.g. by disallowing things and normalizing data.

These are of course things that can be done at any time ("From version 7 
of matroska X is no longer allowed"). I can easily see why no one would 
like to have a generic subtitle binary format as blocker for matroska 
1.0, but the more dependencies we get rid of before 1.0 the better. The 
smaller libmatroska gets the less you'll have to pay for your 
matroska-aware DVD-player.

/Martin Nilsson





More information about the Matroska-devel mailing list