MCF logo

MCF specification, technical part/AV-compressions

This is subpage of MCF-specification.

Progress: 50%

This is where it gets tricky.. Each compression should have unique and exact string.

For developing-needs, you may use names starting with "x-", like "x-MyVideo". When you decide to start distributing that codec, mail me and I'll add it here. Only x-names can be used freely, others need to be registered.

Data should preferrably be big-endian, but if some format is specified exclusively for little-endian, it can be used here too. All raw formats are big-endian.


Note: all RGB(A) is in R-G-B(-A) order (big-endian).


PCM bitdepths and samplerates are stored in Audio Track Header

From AVI: Codec Header

When taking video-data from AVI or compressing it with AVI-codecs, you need to fetch the private part from AVI BITMAPINFOHEADER and use it as Codec Header in MCF. Full BITMAPINFOHEADER is not stored in MCF. When playing it back, converting to AVI, or something, you can reconstruct the full BITMAPINFOHEADER from the Codec Header and video track-header entries.

Same applies to taking audio from AVI - put the private part of WAVEFORMATEX to MCF Codec Header.

ISO MPEG-4 versions

Format Version2 is a bitmask that tells which features are used, to allow interoperatibility of various codecs with differing features. Version3 is another bitmask, but there bits denote features absolutely required for playback. Version1 is yet another bitmask, but contains flags for features supported by the encoder and is informational only.

If some bits the codec doesn't know about are up in Version2, player should warn user about that. If any bits the codec doesn't know about are also up in Version3, the file shouldn't be played.

Unfortunately that bitmask isn't defined yet! We need someone with high level knowledge about DivX and XviD to make a list of features in MPEG-4 (features already supported in DivX and XviD can be excluded).


Some Track Entry fields

AUDIO: Vorbis

Work in progress!

Some Track Entry fields