RIFF(Resource Interchange File Format)
이 개요에서는 .wav 파일에 사용되는 RIFF(리소스 교환 파일 형식)에 대해 설명합니다. RIFF는 XAudio2에 대한 오디오 데이터가 로드되는 일반적인 형식입니다.
RIFF
RIFF 파일은 청크라는 여러 개별 데이터 섹션으로 구성됩니다.
FOURCC 식별자
청크의 데이터 형식은 FOURCC(4자 코드) 식별자로 표시됩니다. FOURCC는 RIFF 파일에서 청크 유형을 식별하는 데 사용되는 4개의 ASCII 문자를 연결하여 만든 32비트 부호 없는 정수입니다. 예를 들어 FOURCC "abcd"는 little-endian 시스템에서 0x64636261 표시됩니다. FOURC는 공백 문자를 포함할 수 있으므로 "abc"는 유효한 FOURCC입니다. 오디오 파일은 FOURCC 코드를 사용하여 오디오 형식 청크, 오디오 데이터 청크 및 오디오 형식과 관련된 기타 청크를 식별합니다.
다음 표에서는 XAudio2에서 지원하는 오디오 형식으로 예상할 수 있는 FOURCC 식별자를 보여 줍니다.
서식 | FOURCC 식별자 | 추가 정보 |
---|---|---|
PCM | "RIFF", "fmt" , "data" | |
Adpcm | "RIFF", "fmt", "data", "smpl", "wsmpl" | ADPCM 관련 FOURCC 식별자에 대한 설명은 ADPCM 개요를 참조하세요. |
FOURCC 식별자 "RIFF", "fmt" 및 "data"는 지원되는 모든 형식에 공통적으로 적용됩니다. 다음 표에서는 지원되는 모든 형식에서 찾을 수 있는 FOURCC 식별자에 대해 설명합니다.
FOURCC 식별자 | Description |
---|---|
"RIFF" | 데이터 섹션의 처음 4바이트에서 값이 "WAVE" 또는 "XWMA"인 파일 형식과 나머지 데이터 섹션의 파일에 있는 다른 청크를 포함하는 표준 RIFF 청크입니다. |
"fmt" | 오디오 파일의 형식 헤더를 포함합니다. 이 청크의 데이터는 WAVEFORMATEX, WAVEFORMATEXTENSIBLEADPCMWAVEFORMAT 구조 중 하나에 해당합니다. |
"data" | 오디오 파일에 대한 오디오 데이터를 포함합니다. XAudio2에서 데이터 청크의 내용은 버퍼로 읽혀지고 XAUDIO2_BUFFER 구조체의 pAudioData 멤버로 원본 음성에 전달됩니다. |
청크
RIFF 파일은 0개 이상의 다른 청크를 포함하는 RIFF 청크로 구성됩니다.
RIFF 청크는 다음과 같은 형식입니다.
"RIFF", fileSize, fileType, data
여기서 "RIFF"는 리터럴 FOURCC 코드 "RIFF"이며 fileSize 는 파일의 데이터 크기를 제공하는 4 바이트 값이며 fileType 은 특정 파일 형식을 식별하는 FOURCC입니다. fileSize 값에는 fileType FOURCC의 크기와 다음 데이터의 크기가 포함되지만 "RIFF" FOURCC의 크기 또는 fileSize 크기는 포함되지 않습니다. 데이터는 순서에 관계없이 청크로 구성됩니다.
다른 청크 형식은 다음과 같습니다.
chunkID, chunkSize, data
chunkID가 청크에 포함된 데이터를 식별하는 FOURCC인 경우 chunkSize는 청크의 데이터 섹션 크기를 제공하는 4바이트 값이며 데이터는 0바이트 이상의 데이터입니다. 데이터는 항상 가장 가까운 WORD 경계에 패딩됩니다. chunkSize 는 청크의 유효한 데이터의 크기를 제공합니다. 안쪽 여백, chunkID의 크기 또는 청크사이즈 크기는 포함되지 않습니다.
관련 항목