| PUID | |
|---|---|
| Signatures | |
| Développé par | |
| Version initiale | |
| Type de format |
Format conteneur générique |
| Basé sur | |
| Origine de | |
| Spécification |
Le Resource Interchange File Format (RIFF) définit un modèle générique de format de fichier à destination des contenus multimédia. Ainsi, il ne s'agit pas d'un format de fichier en soi, mais plutôt d'une méthode d'organisation des données sur laquelle reposent plusieurs formats comme le WAVE et l'AVI.
Le RIFF a été défini conjointement par Microsoft et IBM en 1991. Il hérite en grande partie du format IFF de l'Electronic Arts (1985).
Le RIFF a été introduit en 1991 par Microsoft et IBM comme modèle pour les formats de fichiers multimédia, à destination d'OS/2 et Windows 3.1. Le standard est d’ailleurs publié conjointement avec les premiers formats de fichier issus du RIFF, tel le format WAVE.
Le RIFF reprend le modèle de structure en chunks de l'Interchange File Format publié en 1985 par Electronic Arts, tout en laissant de côté la majorité des autres éléments du standard IFF.

L'unité de construction de base d'un fichier RIFF est le chunk. Un chunk est un bloc de données composé des champs suivant :
0x20), pour former un groupe d'exactement quatre caractères. Par exemple, le ckid fmt␣(le glyphe « ␣ » représente une espace) sera représenté par la suite des quatre caractères : 'f', 'm', 't', '␣' (le glyphe « ␣ » représentant une espace).
Un fichier RIFF est exclusivement composé de chunks.
Un fichier RIFF commence (à l'octet 0) par le chunk d'identifiant RIFF . Celui-ci accueillera dans son champ data tous les chunks du fichier. Par conséquent, le champ cksz du chunk RIFF équivaut à la taille du fichier moins 8 octets.
Le champ data du chunk RIFF commence par un identifiant FourCC appelé formType. Celui-ci indique le type de fichier. Par exemple, dans le cas d'un fichier WAVE, l'identifiant sera l'étiquette FourCC WAVE (c'est-à-dire composée des 4 octets ASCII 'W', 'A', 'V', 'E').
À noter que le chunk RIFF est le seul, avec le chunk LIST , à pouvoir prendre comme données d'autres chunks.
Concernant l'ordonnancement des octets, le format RIFF représente les données en mode petit-boutisme (little-endian). Cependant, le format RIFF définit aussi le RIFX , comme étant son pendant gros-boutiste (big-endian).