[matroska-devel] Re: AVI compatibility misunderstanding

Steve Lhomme steve.lhomme at free.fr
Mon Feb 17 18:07:23 CET 2003

> Audio is the easy part. My tools will use A_PCM16IN for 'normal'
> uncompressed PCM data, A_MPEGLAYER3 for MP3, A_DOL_AC3 for AC3 and
> A_VORBIS for Vorbis. Obviously those formats are all well known and
> shouldn't require a WAVEHEADEREX to be stored as well. Right?

> So the only complicated case is Vorbis which needs three packets apart
> from the data: the headers, the comments and the setup data. Those
> three packets have to be stored under KaxCodecPrivate somehow.


> (still no need for MSCompat...)
> Video is another thing. If you use e.g. HuffYUV or MJPEG then you'll
> need to store Huffman tables somewhere. Where do you store it if
> KaxCodecPrivate is already filled with BITMAPINFOHEADER (or

Well, I thought it was like the cbSize in WAVEFORMATEX that tells the size of
extra data private to the codec : BITMAPINFOHEADER.biSize. That's IIRC the
conclusion of the discussion I had with Cyrius. If that's not the case, we need
even more than the 2 structures mentioned (maybe removing one or 2 of them too ;).

> > SO KaxCodecPrivate and MSCompatibility are redundant. They are not
> used
> > separately. That's why they are THE SAME !
> Not always, I'd suppose. For audio I'd agree so far.

Maybe a HuffPCM would need a Huffman table initialisation too...
> > Later (sooner as possible) we'll make hacks to transform some well
> known ACM
> > codec  into native matroska streams.
> Guess what, I don't understand that sentence - perhaps because I've
> never done DirectShow/VfW coding. A simple question: if I use
> A_MPEGLAYER3 and fill in all KaxAudio* elements, will the Windows apps
> be able to handle that on their own? As in 'yes, they'll just recreate
> a WAVEHEADEREX if needed and search for the corresponding codec'?

I think so, even though when I made the LAME ACM, I tried to fill the extra data
in the WAVEFORMATEX (MPEGL3_WAVEFORMATEX or something like that) the same way as
the Fraunhofer codec. You never know if their decoder will be able to handle
stranges cases or not.

More information about the Matroska-devel mailing list