Subject: [Cellar] re-formatting the Matroska Codec Mappings

From: Dave Rice <[email-masked]>
Date: Mon, 23 Jan 2017 22:22:56 -0500

Hi all,

The documentation on how to document a Codec Mapping in Matroska has been integrated into the GitHub repo. Now here's a attempt to update the Codec Mapping page to use the new form: https://github.com/Matroska-Org/matroska-specification/pull/88. Some notes about the update:

There are many informal questions left within the codec_specs document, usually listed with a “???”. Steve, Moritz, are these notes to self? Can we resolve or remove them? For example V_MS/VFW/FOURCC contains "Where is the Huffman table stored in HuffYUV, not AVISTREAMINFO ??? And the FourCC, not in AVISTREAMINFO.fccHandler ???” Also the definition for A_AC3 seems to question if there is any Private Data for that encoding "The private data is void ???”.

In some cases the original list of codec mappings was nested, I flattened it which increases clarify but also increases redundancy.

The description for V_MPEG1, V_MPEG2, A_MPC, and S_TEXT/USF seem to imply that they are not yet defined, though their definitions are in early states.

The pull request updates the form of the Codec Mappings, but isn’t intended to update or clarify all of the language (there’s still a lot to do there).

And some questions:

Should we define a structure to detail Private Data? For instance Private Data for V_MS/VFW/FOURCC contains a BITMAPINFOHEADER and for V_REAL contains a real_video_props_t. These structures are defined in linked references but is it worthwhile to define the structure within the Codec Mapping? There is a method for defining bitstream data already in the FFV1 specification (example <https://github.com/FFmpeg/FFV1/blob/master/ffv1.md#slice-header>) which we could adapt.

The definition for A_AAC/?????/??? implies that it applies to all A_AAC/* Codec Mappings and its description says "AAC audio always uses wFormatTag 0xFF” which implies that WAVEFORMATEX is used in the Private Data; however each definition for A_AAC/* says that the Private Data is void. So why does it need to be said that "AAC audio always uses wFormatTag 0xFF”? The A_PCM Codec Mappings reference wFormatTag as well.

V_Uncompressed references a KaxCodecColourSpace element but there isn’t such a thing. Is it intended to refer to the ColourSpace Element?

A_PCM/* references a KaxAudioBitDepth element. Is this meant to be the BitDepth Element?

The specs list A_QUICKTIME/QDMC and A_QUICKTIME/QDM2 as deprecated and superseded by A_QUICKTIME. However we note deprecation with a date in the “Deprecation Date” value, but I’m unable to determine when that date was. Suggestions on a date to use or an alternate expression to note Codec deprecation?

Best Regards,
Dave Rice