Stream Data (LIST 'movi' Chunk) (Compact 2013)
3/26/2014
Following the header information is a LIST 'movi' chunk that contains chunks of the actual data in the streams; that is, the pictures and sounds themselves.
The data chunks can reside in the LIST 'movi' chunk or they might be grouped into 'rec' chunks. The 'rec' grouping implies that the grouped chunks should be read from disk all at once. This is used only for files specifically interleaved to play from CD-ROM.
Like any RIFF chunk, the data chunks contain a FOURCC (four-character code) to identify the chunk type.
A FOURCC is a 32-bit quantity represented as a sequence of one to four ASCII alphanumeric characters, padded on the right with blank characters.
The FOURCC that identifies each chunk consists of the stream number and a two-character code that defines the type of information encapsulated in the chunk.
For example, a waveform chunk is identified by a two-character code of 'wb'. If a waveform chunk corresponded to the second LIST 'hdrl' stream description, it would have a FOURCC of '01wb'.
Note
While two-character codes are a convenient way to describe a stream, do not expect them to be recognized by other applications. Use FOURCCs when creating a stream or transferring the information to other applications.
Because all the format information is in the header, the audio data contained in these data chunks does not contain any information about its format. An audio data chunk has the following format (the ## in the format represents the stream identifier).
WAVE Bytes '##wb'
BYTE abBytes[];
Video data can be compressed or uncompressed DIBs. An uncompressed DIB has BI_RGB specified for the biCompression member in its associated BITMAPINFO structure. A compressed DIB has a value other than BI_RGB specified in the biCompression member.
For more information about compression formats, see the description of the BITMAPINFOHEADER data structure in Windows Programmer's Reference.
A data chunk for an uncompressed DIB contains RGB video data. These chunks are identified by a two-character code of 'db' (db is an abbreviation for DIB bits). Data chunks for a compressed DIB are identified by a two-character code of 'dc' (dc is an abbreviation for DIB compressed). Neither data chunk will contain any header information about the DIBs.
The data chunk for an uncompressed DIB has the following form.
DIB Bits '##db'
BYTE abBits[];
The data chunk for a compressed DIB has the following form.
Compressed DIB Bits '##dc'
BYTE abBits[];
Video data chunks can also define new palette entries used to update the palette during an AVI sequence. For more information on specifying palette information, see Video for Windows Programmer's Guide.
Text streams can use arbitrary two-character codes.