[Matroska-general] EBML questions
josh at resonance.org
Sat May 12 15:18:18 CEST 2007
Hello, I'm a developer of a format called CRAM which is used for
compressing files containing audio and binary (such as MIDI audio
instruments, etc). This format isn't really in wide use yet, but we're
currently polishing things up to advertise it more as an alternative to
some other proprietary means of instrument compression.
We choose EBML as the basis for this format and have a couple questions
concerning some parts of the spec which we're not following.
The CRAM format is not using CRC32 currently for level 1 chunks. While
we are considering using this for the EBML chunk itself, we don't think
it makes sense to use it for the rest of the compressed data, since MD5
is used for the compressed audio and binary data (2 signatures for
uncompressed audio and binary).
We aren't currently using some of the other chunks marked as Mandatory
in the spec. For example EBMLMaxIDLength and EBMLMaxSizeLength.
This format is targeted more at compression than streaming, although the
sample data itself may be streamed (WavPack or FLAC compressed data),
this likely won't be across EBML chunk boundaries. My questions are
mainly in regards to developers possibly using other EBML parsing
implementations for CRAM. Would not following the above components of
the EBML spec, lead to existing parsers failing to parse CRAM? Perhaps
this is a non-issue anyways, since not knowing the document type of an
EBML file isn't very useful (the contents of the chunks are unknown).
We are currently breaking backwards compatibility with the CRAM spec due
to some other reasons, so I'd like to get things right this time :)
Thanks for any comments on this.
More information about the Matroska-general