The optional idx1 chunk follows the movi list and gives one
16-byte entry for every data chunk, including rec lists. When it is present
the AVIF_HASINDEX flag
is set. Microsoft calls it the AVI 1.0 index and recommends the
OpenDML index for new files.
Layout
| Offset | Size | Type | Name | Meaning |
|---|---|---|---|---|
| 0 | 4 | FOURCC | fcc | idx1. |
| 4 | 4 | DWORD | cb | Size of the entries, not counting these 8 bytes. |
| 8 | 16 × n | entry[] | aIndex | One entry per data chunk. |
Index entry
| Offset | Size | Type | Name | Meaning |
|---|---|---|---|---|
| 0 | 4 | FOURCC | dwChunkId | The chunk’s ID, such as 00dc. |
| 4 | 4 | DWORD | dwFlags | The flags below. |
| 8 | 4 | DWORD | dwOffset | Where the chunk is. Should be measured in bytes from the start of the movi list, but some files measure from the start of the file. |
| 12 | 4 | DWORD | dwSize | Size of the chunk in bytes. |
Because of the two meanings of dwOffset, a reader cannot assume which one
a file uses, and has to check by looking for the expected chunk ID at the offset.
Entry flags
| Value | Name | Meaning |
|---|---|---|
0x00000001 | AVIIF_LIST | The chunk is a rec list. |
0x00000010 | AVIIF_KEYFRAME | The chunk is a key frame. |
0x00000100 | AVIIF_NO_TIME | The chunk does not affect the timing of the stream, as with palette changes. |
0x0FFF0000 | AVIIF_COMPRESSOR | Mask of bits reserved for the compressor. Named in aviriff.h; not described on Microsoft’s page. |