DirectShow DirectShow 레퍼런스 DirectShow 구조체 WAVEFORMATEXTENSIBLE   [목차열람] [주소복사] [슬롯비우기]
WAVEFORMATEXTENSIBLE 구조체
 
Microsoft DirectX 9.0

WAVEFORMATEXTENSIBLE 구조체

WAVEFORMATEXTENSIBLE 구조체는, 3 개 이상의 채널을 가지는 포맷의 파형 오디오 데이터의 포맷을 정의한다.

이 구조체는 Platform SDK 의 일부로, Mmreg.h 로 선언되고 있지만, 편의상 이 문서에도 기재하고 있다.

구문

typedef struct {
  WAVEFORMATEX  Format;
  union {
    WORD  wValidBitsPerSample;
    WORD  wSamplesPerBlock;
    WORD  wReserved;
  } Samples;
  DWORD   dwChannelMask; 
  GUID    SubFormat;
} WAVEFORMATEXTENSIBLE, *PWAVEFORMATEXTENSIBLE;

멤버

Format

기본적인 포맷을 지정하는 WAVEFORMATEX 구조체. wFormatTag 멤버는, Mmreg.h 에 정의된 WAVE_FORMAT_EXTENSIBLE 가 아니면 안된다. cbSize 멤버에는 적어도 22 를 지정할 필요가 있다.

wValidBitsPerSample

신호의 정밀도의 비트수. 보통은 WAVEFORMATEX.wBitsPerSample 와 동일하다.

wSamplesPerBlock

오디오 데이터의 1 개의 압축 블록에 포함되는 샘플수. 이 값은, 버퍼 견적에 사용된다. 이 값은, 각 블록에 고정수의 샘플을 가지는 압축 포맷과 함께 사용된다. 압축 오디오 데이터의 각 블록에 가변수의 샘플이 포함되는 경우는, 이 값을 제로로 설정해도 상관없다. 이 경우, 버퍼 견적과 위치 정보는, 다른 방법으로 얻어올 필요가 있다.

wReserved

operating system의 내부 사용을 위해서(때문에) 예약이 끝난 상태. 제로로 설정하는 것.

dwChannelMask

스피커 위치에의 스트림내의 채널 할당을 지정하는 비트 마스크. 「주의」를 참조할것.

SubFormat

KSDATAFORMAT_SUBTYPE_PCM 등, 데이터의 서브 포맷. 서브 포맷 정보는,WAVEFORMATEX 구조체의 wFormatTag 멤버의 태그로 제공되는 정보와 비슷하다.

주의

dwChannelMask 멤버는, 멀티 채널 스트림에 어느 채널이 있는지를 지정한다. 최하정도 비트는 운이 나빠짐 스피커에 대응해, 다음의 최하정도 비트는 오른쪽앞스피커에 대응한다, 라고 하는 상태이다. 다음과 같이 각 비트는 Ksmedia.h 및 Mmreg.h 로 순서에 정의되고 있다.

스피커 위치 flag bit
SPEAKER_FRONT_LEFT 0x1
SPEAKER_FRONT_RIGHT 0x2
SPEAKER_FRONT_CENTER 0x4
SPEAKER_LOW_FREQUENCY 0x8
SPEAKER_BACK_LEFT 0x10
SPEAKER_BACK_RIGHT 0x20
SPEAKER_FRONT_LEFT_OF_CENTER 0x40
SPEAKER_FRONT_RIGHT_OF_CENTER 0x80
SPEAKER_BACK_CENTER 0x100
SPEAKER_SIDE_LEFT 0x200
SPEAKER_SIDE_RIGHT 0x400
SPEAKER_TOP_CENTER 0x800
SPEAKER_TOP_FRONT_LEFT 0x1000
SPEAKER_TOP_FRONT_CENTER 0x2000
SPEAKER_TOP_FRONT_RIGHT 0x4000
SPEAKER_TOP_BACK_LEFT 0x8000
SPEAKER_TOP_BACK_CENTER 0x10000
SPEAKER_TOP_BACK_RIGHT 0x20000

이 구조체의 더 자세한 정보는, 문서 「Multiple Channel Audio Data and WAVE Files 」(www.microsoft.com)을 참조할것.

↑TOP