Genauer besteht eine 'hdrl' Liste aus zwei Subchunks. Der erste hat den ID 'avih' und definiert globale Eigenschaften der AVI-Datei, der zweite ist seinerseits ein LIST-Chunk mit dem List Type 'strl' (Stream List), der für jeden Stream mindestens zwei Chunks enthält: den 'strh' (Stream Header) und den 'strf' (Stream Format) Chunk. Optional kann ein 'strd' (Stream Data) Chunk folgen. Dieser dient dazu, zusätzliche Daten zu speichern, er kann aber auch bei installierbarem Komprimierer/Dekomprimierer als Initialisierungswert dienen und dabei uninterpretiert an diese übergeben werden.
Beispiel: Subchunks im Überblick
RIFF ('AVI '
LIST ('hdrl'
'avih'([Main AVI Header])
LIST ('strl'
'strh' ([Stream Header])
'strf' ([Stream Format])
'strd' (zusaetzliche Header)
)
)
LIST ('movi'
(SubChunk: LIST ('rec '
SubChunk1
SubChunk2
)
)
['idx1' (AVIIndex)]
)
)
Im 'strh'-Chunk sind allgemeine Informationen zum Stream gespeichert, so
zum Beispiel, um welche Art von Daten (Bild oder Ton) es sich handelt,
welcher Kompressor benutzt oder mit welcher Rate digitalisiert wurde.
Im 'strf'-Chunk ist dann das genaue Format des Streams gespeichert.
Für Bilder wird hier zum Beispiel eine Struktur vom Typ TBITMAPINFO, also
des Typs, in dem unter Windows geräteunabhängige
Bitmaps (D(evice)I(ndependet)B(itmap)) gespeichert werden, enthalten sein.
Für Ton enthält der 'strf'-Chunk eine Struktur vom Typ WAVEFORMATEX, einer
Erweiterung des Typs WAVEFORMAT, des Typs, in dem unter Windows PCM
Waveform-Daten gespeichert werden.
Die der 'strl'-Liste folgenden Chunks in der 'hdrl' Liste sind nicht genauer
spezifiziert. Hier steht üblicherweise ein 'JUNK'-Chunk, dessen Länge
etwa so gewählt werden kann, daß die echten Bild-bzw. Tondaten
(ohne die Header) bei einem Vielfachen von zwei Kbyte beginnen. Das bringt
beim Lesen von CD-ROM diverse Vorteile mit sich.
Nach den Headern folgen im 'movi'-Chunk die eigentlichen Bild- und Tondaten. Diese können Stream für Stream als Subchunks der 'movi'-Liste oder aber ineinander verschachtelt gespeichert sein. Im ersten Fall existiert pro Stream ein Subchunk, im zweiten Fall pro Schachtelung ein LIST-Chunk mit dem Form Typ 'rec '.
Die 'movi'-Liste speichert dann letztlich die (eventuell komprimierten) Daten für die einzelnen Bilder des Videos, sowie den (ebenfalls möglicherweise komprimierten) Ton. Nach den eigentlichen Daten kann, je nach Bedarf, der 'idx1' Chunk eingesetzt werden.