Format de fichier d’échange de ressources (RIFF)
Cette vue d’ensemble décrit le format RIFF (Resource Interchange File Format), utilisé dans les fichiers .wav. RIFF est le format classique à partir duquel les données audio pour XAudio2 seront chargées.
RIFF
Un fichier RIFF est composé de plusieurs sections discrètes de données appelées segments.
Identificateurs FOURCC
Le type de données d’un bloc est indiqué par un identificateur de code à quatre caractères (FOURCC). Un FOURCC est un entier non signé 32 bits créé en concaténant quatre caractères ASCII utilisés pour identifier les types de blocs dans un fichier RIFF. Par exemple, le FOURCC « abcd » est représenté sur un système peu endien comme 0x64636261. LES QUATRECC peuvent contenir des caractères d’espace. Par conséquent, « abc » est un FOURCC valide. Les fichiers audio utilisent des codes FOURCC pour identifier les blocs de format audio, les blocs de données audio et tous les autres blocs spécifiques au format audio.
Le tableau suivant présente les identificateurs FOURCC qui peuvent être attendus dans les formats audio pris en charge par XAudio2.
Format | Identificateurs FOURCC | Informations supplémentaires |
---|---|---|
PCM | « RIFF », « fmt », « data » | |
ADPCM | « RIFF », « fmt », « data », « smpl », « wsmpl » | Consultez vue d’ensemble d’ADPCM pour obtenir une description des identificateurs FOURCC spécifiques à ADPCM. |
Les identificateurs FOURCC « RIFF », « fmt » et « data » sont communs à tous les formats pris en charge. Le tableau suivant décrit les identificateurs FOURCC trouvés dans tous les formats pris en charge.
Identificateur FOURCC | Description |
---|---|
« RIFF » | Segment RIFF standard contenant un type de fichier avec la valeur « WAVE » ou « XWMA » dans les quatre premiers octets de sa section de données et les autres blocs du fichier dans le reste de sa section de données. |
« fmt » | Contient l’en-tête de format du fichier audio. Les données de ce segment correspondent à l’une des structures suivantes : WAVEFORMATEX, WAVEFORMATEXTENSIBLE ADPCMWAVEFORMAT. |
« data » | Contient des données audio pour le fichier audio. Dans XAudio2, le contenu du bloc de données est lu dans une mémoire tampon et transmis à une voix source en tant que membre pAudioData d’une structure XAUDIO2_BUFFER. |
Morceaux
Un fichier RIFF se compose d’un bloc RIFF contenant zéro ou plusieurs autres blocs.
Le segment RIFF a la forme suivante :
« RIFF », fileSize, fileType, data
Où « RIFF » est le code FOURCC littéral « RIFF », fileSize est une valeur de 4 octets donnant la taille des données dans le fichier, et fileType est un FOURCC qui identifie le type de fichier spécifique. La valeur de fileSize inclut la taille de fileType FOURCC plus la taille des données qui suivent, mais n’inclut pas la taille du FOURCC « RIFF » ou la taille de fileSize. Les données se composent de blocs dans n’importe quel ordre.
Les autres blocs ont la forme suivante :
chunkID, chunkSize, data
Où segmentID est un FOURCC qui identifie les données contenues dans le bloc, segmentSize est une valeur de 4 octets donnant la taille de la section de données du bloc, et les données sont égales à zéro ou plus d’octets de données. Les données sont toujours rembourrées à la limite WORD la plus proche. segmentSize donne la taille des données valides dans le bloc. Il n’inclut pas le remplissage, la taille de segmentID, ou la taille de segmentSize.
Rubriques connexes