Formát souborů RIFF (Resource Interchange File Format)
Tento přehled popisuje formát RIFF (Resource Interchange File Format), který se používá v .wav souborech. RIFF je typický formát, ze kterého se načtou zvuková data pro XAudio2.
RIFF
Soubor RIFF se skládá z několika samostatných částí dat nazývaných bloků dat.
Identifikátory FOURCC
Typ dat v bloku dat je označen identifikátorem čtyřznakového kódu (FOURCC). FOURCC je 32bitové celé číslo bez znaménka vytvořené zřetězením čtyř znaků ASCII sloužících k identifikaci typů bloků dat v souboru RIFF. Například FOURCC "abcd" je reprezentován v malém endian systému jako 0x64636261. Funkce FOURCCs může obsahovat mezery, takže "abc" je platná funkce FOURCC. Zvukové soubory používají kódy FOURCC k identifikaci bloků zvukových formátů, bloků zvukových dat a všech dalších bloků dat specifických pro zvukový formát.
Následující tabulka ukazuje identifikátory FOURCC, které lze očekávat ve zvukových formátech podporovaných XAudio2.
Formát | Identifikátory FOURCC | Další informace |
---|---|---|
PCM | "RIFF", "fmt" , "data" | |
ADPCM | "RIFF", "fmt", "data", "smpl", "wsmpl" | Popis identifikátorů FOURCC specifických pro ADPCM najdete v přehledu ADPCM. |
Identifikátory FOURCC "RIFF", "fmt" a "data" jsou společné pro všechny podporované formáty. Následující tabulka popisuje identifikátory FOURCC, které jsou nalezeny ve všech podporovaných formátech.
Identifikátor FOURCC | Popis |
---|---|
"RIFF" | Standardní blok dat RIFF obsahující typ souboru s hodnotou "WAVE" nebo "XWMA" v prvních čtyřech bajtech jeho datového oddílu a další bloky dat v souboru ve zbývající části jeho datové části. |
"fmt" | Obsahuje záhlaví formátu zvukového souboru. Data v tomto bloku odpovídají jedné z následujících struktur: WAVEFORMATEX, WAVEFORMATEXTENSIBLE ADPCMWAVEFORMAT. |
"data" | Obsahuje zvuková data zvukového souboru. V XAudio2 se obsah datového bloku přečte do vyrovnávací paměti a předá se zdrojovému hlasu jako pAudioData člen struktury XAUDIO2_BUFFER. |
Polena
Soubor RIFF se skládá z bloku RIFF obsahujícího nula nebo více jiných bloků dat.
Blok dat RIFF má následující tvar:
"RIFF", fileSize, fileType, data
Kde "RIFF" je literál FOURCC kód "RIFF", fileSize je 4 bajtová hodnota, která dává velikost dat v souboru, a fileType je FOURCC, který identifikuje konkrétní typ souboru. Hodnota fileSize zahrnuje velikost fileType FOURCC plus velikost následujících dat, ale nezahrnuje velikost "RIFF" FOURCC nebo velikost fileSize. Data se skládají z bloků dat v libovolném pořadí.
Jiné bloky dat mají následující tvar:
chunkID, chunkSize, data
Kde bloku dat je FOURCC, která identifikuje data obsažená v bloku dat, bloky dat jsou 4 bajty, které poskytují velikost datového oddílu bloku a data jsou nula nebo více bajtů dat. Data jsou vždy vycpaná na nejbližší hranici WORDu. bloku dat dává velikost platných dat v bloku dat. Nezahrnuje odsazení, velikost bloku dat nebo velikost bloků dat.
Související témata
-
Postupy: Přehrávání zvuku s XAudio2
-
referenční programování XAudio2