2.2.2.3.1 Extended Wave Format Structure (WAVEFORMAT_EXTENSIBLE)

The Extended Wave Format Structure provides detailed audio format information. For more information, see [MSDN-WAVEFMTEXT].


0


1


2


3


4


5


6


7


8


9

1
0


1


2


3


4


5


6


7


8


9

2
0


1


2


3


4


5


6


7


8


9

3
0


1

wValidBitsPerSample/wSamplesPerBlock

dwChannelMask

...

SubFormat (16 bytes)

...

...

...

wValidBitsPerSample/wSamplesPerBlock (2 bytes): Depending on the format used, the 16–bit field before dwChannelMask can be interpreted as either wValidBitsPerSample or wSamplesPerBlock. wValidBitsPerSample is a 16-bit unsigned integer specifying how many bits are valid for each sample. This value MUST be less than or equal to the value of the wBitsPerSample field of the containing Open PDU. wSamplesPerBlock is a 16-bit unsigned integer specifying the number of samples contained in one compressed block of audio data. This value is used with compressed formats that have a fixed number of samples within each block. This value can be set to 0 if a variable number of samples is contained in each block of compressed audio data.

dwChannelMask (4 bytes): A 32-bit unsigned integer specifying from which audio channels to record. This field MUST be a bitwise OR of the following values.

 Speaker position

 Flag bit

SPEAKER_FRONT_LEFT

0x00000001

SPEAKER_FRONT_RIGHT

0x00000002

SPEAKER_FRONT_CENTER

0x00000004

SPEAKER_LOW_FREQUENCY

0x00000008

SPEAKER_BACK_LEFT

0x00000010

SPEAKER_BACK_RIGHT

0x00000020

SPEAKER_FRONT_LEFT_OF_CENTER

0x00000040

SPEAKER_FRONT_RIGHT_OF_CENTER

0x00000080

SPEAKER_BACK_CENTER

0x00000100

SPEAKER_SIDE_LEFT

0x00000200

SPEAKER_SIDE_RIGHT

0x00000400

SPEAKER_TOP_CENTER

0x00000800

SPEAKER_TOP_FRONT_LEFT

0x00001000

SPEAKER_TOP_FRONT_CENTER

0x00002000

SPEAKER_TOP_FRONT_RIGHT

0x00004000

SPEAKER_TOP_BACK_LEFT

0x00008000

SPEAKER_TOP_BACK_CENTER

0x00010000

SPEAKER_TOP_BACK_RIGHT

0x00020000

SubFormat (16 bytes): A GUID that specifies the audio format to use for recording data. This field MUST be set to KSDATAFORMAT_SUBTYPE_PCM ({00000001-0000-0010-8000-00aa00389b71}).