Partager via


RIFF (Resource Interchange File Format)

Cette vue d’ensemble décrit le format RIFF (Resource Interchange File Format), qui est 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 segment 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. FOURCCs pouvant contenir des caractères d’espace, « abc » est un FOURCC valide. Les fichiers audio utilisent des codes FOURCC pour identifier les segments de format audio, les segments de données audio et tout autre segment spécifique au format audio.

Le tableau suivant montre les identificateurs FOURCC 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 qui se trouvent 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 segment 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 .

 

Chunks

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 qui donne 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 suit, mais n’inclut pas la taille du FOURCC « RIFF » ou la taille de fileSize. Les données se composent de segments dans n’importe quel ordre.

  • Les autres segments ont la forme suivante :

    chunkID, chunkSize, data
    

    chunkID est un FOURCC qui identifie les données contenues dans le segment, chunkSize est une valeur de 4 octets qui donne la taille de la section de données du segment, et les données sont de zéro octets ou plus de données. Les données sont toujours ajoutées à la limite WORD la plus proche. chunkSize indique la taille des données valides dans le segment. Il n’inclut pas le remplissage, la taille de chunkID ou la taille de segmentSize.

Prise en main

Procédure : lire un son avec XAudio2

Référence de programmation XAudio2