[matroska-devel] Important decision about codec ID handling until UCI will be here

ChristianHJW christian at matroska.org
Sun Feb 9 23:23:59 CET 2003


Hi,

i am opying this post to uci-devel so that Alex could comment if he wanted
to. Other copies go to Frank Klemm ( MPC developer ) and Blacksun from the
corecodec Team, who wants to make a MPC DShow filter, and the developers
coding en/decoding support for Windows ( Cyrius, kromyx ) and Linux (
Moritz ).

We have to make a decision about how to handle the codec IDs in matroska
files until we will be able to use UCI codec plugins ( no, i am NOT putting
pressure on you Alex, just stating facts ). Libmatroska in in a usable state
from today on, and both Cyrius and myFUN/kromyx are already working on
implementing the en/decoders for Windows, while Moritz will wait until we
have a working  C API for our lib ( fine with us ).

It seems the best way for the time being, at least for video and until we
still use VfW codecs ( even on Linux most encoders use FourCC ), was to use
the

V_MS/VFW/FOURCC

tag ( as defines here in this list :
http://www.corecodec.com/modules.php?op=modload&name=PNphpBB2&file=viewtopic
&t=227 ) and store the FourCC in the codec private data, as it was always
planned for the so-called 'AVI/VfW compatibility mode'.

However, this leaves a questionmark on the correct handling for the most
important audio codecs, namely

MP3
AC3
MPC
Vorbis

For the first 2 my clear vote goes to using the

A_MS/ACM

tag and to store the GUID for the audio format ( 0x2000 = AC3, 0x0055 =
MP3 ) again in the codec private data. This way we can easily call existing
DShow filters for playback of these streams, and on Linux it shouldnt cause
big probs for Moritz to call liba52 etc. according to GUID.

For Vorbis, i still refuse to think of calling Tobias Waldvogel's DirectShow
filter for playback on Windows. Also the GUID he was using is not confirmed
officially by Xiph still. We have the follwing options :

1. Hardcode Vorbis decoder into matroska parser ( as we dont have a UCI
plugin yet ), and use the correct Vorbis ID, being 'A_VORBIS' ( preferred
way IMHO )

2. Use 'A_MS/ACM' ID and use Tobias Waldvogels GUID to call his DShow filter
( least option IMHO )

3. Use 'A_VORBIS' but hardcode a conversion routine into the current
matroska parser, so it calls the DShow filter

4. Use Ingo Ralf Blums Media XW filter, wich includes support for FLAC and
Vorbis BTW, and use his GUIDs in the conversion routine

For MPC,

i am not 100% happy with the idea of BlackSun to make a DShow filter for it.
Sure, Frank could chose a GUID and this would be the official one. But i
somehow feel by doing so we would undermine our attempts to create matroska
( and same is valid for MCF also ) on a x-platform basis. I'd prefer
hardcoding MPC decoder support into matroska parser.

Please let me know your opinion on this very important question

Christian



http://matroska.org



More information about the Matroska-devel mailing list