DirectSound DirectSound C/C++ 레퍼런스 DirectSound 의 구조체 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 블록의 오디오 데이터에 보관 유지되는 샘플수. 이 값은, 블록마다 샘플수가 일정하는 압축 포맷에 대해, 버퍼의 견적에 사용된다. 압축된 오디오 데이터의 각 블록에 포함되는 샘플수가 가변의 경우는, 이 값을 0 으로 설정해 상관없다. 그 경우, 버퍼의 견적과 위치 정보는, 다른 방법으로 얻어올 필요가 있다.

wReserved

operating system에 의한 내부적인 사용을 위해서(때문에) 예약되고 있다. 0 으로 설정한다.

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

이 구조체의 더 자세한 정보는, www.microsoft.com 로 제공되고 있는 문서 「Multiple Channel Audio Data and WAVE Files 」를 참조할것.

요건

  헤더:mmreg.h, ksproxy.h 로 선언.

참조

↑TOP