** 4 bytes: an ASCII identifier for this chunk, e.g. "fmt " or "data".
** 4 bytes: an unsigned, little-endian 32-bit integer with the length of this chunk (except this field itself and the chunk identifier).
** variable-sized field: the chunk data itself, of the size given in the previous field.
** a pad byte, if the chunk's length is not even.
Two chunk identifiers, "RIFF" and "LIST", introduce a chunk that can contain subchunks. Their chunk data, after the identifier and length, has the following format:
** 4 bytes: an ASCII identifier for this particular chunk (in the case of the RIFF chunk: for the entire file, such as "AVI " or "WAVE").
* rest of data: subchunks.
The file itself consists of one RIFF chunk, which then can contain further subchunks.