Sdílet prostřednictvím


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.

Začínáme

Postupy: Přehrávání zvuku s XAudio2

referenční programování XAudio2