[matroska-devel] Re: Audio ACM compatibility

Steve Lhomme steve.lhomme at free.fr
Tue Feb 18 14:55:20 CET 2003

En réponse à Moritz Bunkus <moritz at bunkus.org>:

> Hi.
> > I agree with the 'if' but there is a 'else'. Else we use "A_MS/ACM" we
> don't
> > just drop an assertion saying this codec should not go in
> matroska...
> if (codecid = map_codec_format_tag_to_matroska_id(format_tag) !=
>     "NOTFOUND")
>   use(codecid);
> else {
>   use("A_MS/ACM");
>   somehow_store_the_format_tag();
> }
> ?

Yes !

> > >  - the data after the WAVEFORMATEX as given by the cbSize member
> > 
> > Why do you want to store a Microsoft structure in something that has
> *nothing*
> > to do with any Microsoft system (ie CodecID != A_MS/ACM) ?
> I don't want to store the struct at all. But is not the data AFTER the
> structure something that the codec needs for e.g. initialisation? I'm
> not so firm in those MS structs, but it's only this private data that
> I want to keep.

I understand but is it really worth saving 10 or 20 octets in the file, when the
ACM driver (or an AVI file) gives you the structure already filled ? I
personally prefer to lose a little amount of data and be sure it will always
work without any problem (or extra code). (same idea for video)

> So we also have to specifiy the endianess. (Just popped into my mind
> ;))

No, the data for V_MS/VFW/FOURCC and A_MS/ACM are obviously in little endian.
That would not make sense to turn them into big endian, because it will not very
likely play on anything else than an IA32 CPU. It's a structure from the Windows
world, so it's little endian.

More information about the Matroska-devel mailing list