Microsoft DirectX 8.0 (C++)

WAVEFORMATEXTENSIBLE

3 つ以上のチャンネルを持つフォーマットにおいて、ウェーブフォーム オーディオ データのフォーマットを決定する。

この構造体は Platform SDK の一部であり、Dsound.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
wValidBitsPerSample および wSamplesPerBlock がフォーマットに適用されない場合は、0 に設定する。
dwChannelMask
チャンネルを指定するビットマスク。「注意」を参照すること。
SubFormat
データのサブフォーマット。Ksmedia.h で定義されている KSDATAFORMAT_SUBTYPE_PCM でなければならない。

注意

dwChannelMask メンバは、マルチチャンネル ストリームでのチャンネルを示す。最下位ビットが左前のスピーカ、次のビットが右前のスピーカのように、各ビットが対応している。各ビットは順に、Ksmedia.h および Mmreg.h で次のように定義されている。

SPEAKER_FRONT_LEFT
SPEAKER_FRONT_RIGHT
SPEAKER_FRONT_CENTER
SPEAKER_LOW_FREQUENCY
SPEAKER_BACK_LEFT
SPEAKER_BACK_RIGHT
SPEAKER_FRONT_LEFT_OF_CENTER
SPEAKER_FRONT_RIGHT_OF_CENTER
SPEAKER_BACK_CENTER
SPEAKER_SIDE_LEFT
SPEAKER_SIDE_RIGHT
SPEAKER_TOP_CENTER
SPEAKER_TOP_FRONT_LEFT
SPEAKER_TOP_FRONT_CENTER
SPEAKER_TOP_FRONT_RIGHT
SPEAKER_TOP_BACK_LEFT
SPEAKER_TOP_BACK_CENTER
SPEAKER_TOP_BACK_RIGHT

この構造体の詳細については、http://www.microsoft.com/hwdev/audio/multichaud.htm の「Enhanced Audio Formats for Multi-Channel Configurations and High-Bit Resolution」を参照すること。

動作環境

  ヘッダー : mmreg.h および ksproxy.h で宣言。