[matroska-devel] New ideas for mode2 form2

Christian HJ Wiesner christian at matroska.org
Tue Feb 11 16:11:41 CET 2003


To : DeXT
To : matroska-devel at freelists.org
cc. Koepi
cc : avih ( DeXT pls forward, i guess i have no valid email addy from avi )


Hi DeXT,

we havent heard from you for a while, so im dropping you this email, copied to matroska-devel, Koepi and avih .

Our team member spyder is currently working hard on some technical docs explaining matroska for a technically interested user, not a developer capable of reading the specs. After he has finished that he told me he will get bored to death and needs a new tool to play with :D ! So, we are talking to you to find out what he could do.

You are maybe aware that libmatroska is in a usable state by now, and both Cyrius and myFUN are working hard to get the first alpha tools for Windows out of the door, of course we will test them in a very small alpha test circle first before making a public beta release. There are still some key features missing in the lib, like FileKax and MetaSeek/Cue, and this will take some more weeks probably, depending on robux4' motivation to code :D !

While this is still going on i am trying to plan the next steps already, and you know that mode2 form2 support is very high on my list, as i consider it a key feature for matroska. Hopefully you will remember our conversation on IRC lately, when we told you that we came up with a nice idea of making matroska even better for mode2 form2 than our original plans were. This idea is basically to create an intelligent tool that will add several EDC and ECC elements to the matroska file, giving special protection to the most important elements of the file like

- main header
- indexes ( MetaSeek, seek entries, spread all over the file )
- track headers
- block headers
etc.

That way a file being 785 MB in size could be 'pumped up' to 795 MB ( or any other file size the user feels he can burn safely with his burner ), adding 10 MB of additional CRC checksums of all important parts listed above. Of course, this would increase overhead significantly, but give a lof of extra protection to the file, using the available disc space in the very best way. Matroska's structure, being EBML based, allows to do so easily without breaking file compatibility with a lot of devices, including hardware units ( one day ;-) ). On playback, the matroska parser will simply ignore these extra elements normally, they could only become important once the file cant be played anymore. In this case a 'file repair' tool can be used to recreate the missing information, so the user can burn it again and enjoy it as a fully functional movie. Alternatively we could think of adding a special option to the matroskaparser, such that when you have a strong PC the existing CRCs can 
 be used on playback also.

Now, my question to you was :

- The resulting matroska file should be directly compatible with Mode2CD creator, as for you its a 'normal' file, with all the protection added to the file itself in special elements. My concerns now are, how would we handle matroska files with respect to the extra safety you will build in by writing the first 64 kb of every file into a separate mode2 form 1 track ? Is this necessary at all or could we drop that for matroska ? Would you recommend to do that in any case, to achieve extra safety ?

- Could you consider to add our code to your tool later, such that the 'conversion' from a normal matroska file to an 'extra safety' file could be done inside Mode2CD creator directly ? Note that you will need to add libmatroska to your tool to be able to do that, so this might have a serious impact on file size for distribution from your server. Alternatively we could make this ' mode2 burning preparation' process in our file repair tool ( spyder's job :D ), so the user had to use 2 different tools to create a mode2 matroska CD.

Please tell me your opinion on that, and dont forget to copy the list also ( reply-all button ;) )

ChristianHJW

http://matroska.org



More information about the Matroska-devel mailing list