Поделиться через


структура KSAUDIO_CHANNEL_CONFIG (ksmedia.h)

Структура KSAUDIO_CHANNEL_CONFIG указывает конфигурацию каналов в формате данных звукового потока.

Синтаксис

typedef struct {
  LONG ActiveSpeakerPositions;
} KSAUDIO_CHANNEL_CONFIG, *PKSAUDIO_CHANNEL_CONFIG;

Члены

ActiveSpeakerPositions

Указывает как количество каналов, так и назначение этих каналов позициям говорящего. Этот элемент представляет собой битовую маску, в которой каждый бит в маске соответствует определенной позиции говорящего. Если установлен бит маски, звуковой поток содержит канал, назначенный позиции говорящего, представляющей бит маски. Число каналов в потоке получается путем подсчета количества чисел, которые отображаются в битовой маске. Дополнительные сведения см. в следующем разделе "Примечания".

Замечания

Эта структура используется для задания или получения значения данных для свойства KSPROPERTY_AUDIO_CHANNEL_CONFIG.

В следующей таблице показаны биты флагов, определенные для элемента ActiveSpeakerPositions.

Позиция докладчика Бит флага
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

Каждый формат звуковых данных содержит каналы для одной или нескольких предыдущих позиций динамиков. Количество каналов просто равно числу битов флага ненулевого значения в элементе ActiveSpeakerPositions.

Относительные позиции каналов в каждом блоке звуковых данных всегда соответствуют тому же относительному упорядочению, что и биты флага в предыдущей таблице. Например, если ActiveSpeakerPositions содержит значение 0x00000033, формат определяет четыре аудиоканала, назначенные для воспроизведения на переднем, левом, переднем, заднем и правом динамиках соответственно. Данные канала должны быть перемечены в этом порядке в каждом блоке. (Это конфигурация KSAUDIO_SPEAKER_QUAD, которая отображается во второй из двух следующих таблиц.)

В следующей таблице показаны конфигурации динамиков, определенные для DVD-диска.

Конфигурация Позиция докладчика
KSAUDIO_SPEAKER_GROUND_FRONT_LEFT SPEAKER_FRONT_LEFT
KSAUDIO_SPEAKER_GROUND_FRONT_CENTER SPEAKER_FRONT_CENTER
KSAUDIO_SPEAKER_GROUND_FRONT_RIGHT SPEAKER_FRONT_RIGHT
KSAUDIO_SPEAKER_GROUND_REAR_LEFT SPEAKER_BACK_LEFT
KSAUDIO_SPEAKER_GROUND_REAR_RIGHT SPEAKER_BACK_RIGHT
KSAUDIO_SPEAKER_TOP_MIDDLE SPEAKER_TOP_CENTER
KSAUDIO_SPEAKER_SUPER_WOOFER SPEAKER_LOW_FREQUENCY

В следующей таблице показаны конфигурации говорящего, определенные для DirectSound.

Конфигурация Позиции говорящего
KSAUDIO_SPEAKER_DIRECTOUT 0 (без динамиков)
KSAUDIO_SPEAKER_MONO SPEAKER_FRONT_CENTER
KSAUDIO_SPEAKER_STEREO SPEAKER_FRONT_LEFT
SPEAKER_FRONT_RIGHT
KSAUDIO_SPEAKER_QUAD SPEAKER_FRONT_LEFT
SPEAKER_FRONT_RIGHT
SPEAKER_BACK_LEFT
SPEAKER_BACK_RIGHT
KSAUDIO_SPEAKER_SURROUND SPEAKER_FRONT_LEFT
SPEAKER_FRONT_RIGHT
SPEAKER_FRONT_CENTER
SPEAKER_BACK_CENTER
KSAUDIO_SPEAKER_5POINT1 SPEAKER_FRONT_LEFT
SPEAKER_FRONT_RIGHT
SPEAKER_FRONT_CENTER
SPEAKER_LOW_FREQUENCY
SPEAKER_BACK_LEFT
SPEAKER_BACK_RIGHT
KSAUDIO_SPEAKER_5POINT1_SURROUND SPEAKER_FRONT_LEFT
SPEAKER_FRONT_RIGHT
SPEAKER_FRONT_CENTER
SPEAKER_LOW_FREQUENCY
SPEAKER_SIDE_LEFT
SPEAKER_SIDE_RIGHT
KSAUDIO_SPEAKER_7POINT1 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
KSAUDIO_SPEAKER_7POINT1_SURROUND SPEAKER_FRONT_LEFT
SPEAKER_FRONT_RIGHT
SPEAKER_FRONT_CENTER
SPEAKER_LOW_FREQUENCY
SPEAKER_BACK_LEFT
SPEAKER_BACK_RIGHT
SPEAKER_SIDE_LEFT
SPEAKER_SIDE_RIGHT

Конфигурация KSAUDIO_SPEAKER_7POINT1 говорящего устарела и больше не поддерживается.

В предыдущей таблице константная KSAUDIO_SPEAKER_DIRECTOUT имеет значение нуля, что означает, что никакие позиции динамиков не назначаются каналам в многоканального потока. Например, ноль канала может представлять удар, канал 1 может представлять трубу, канал 2 может представлять голос и т. д. В этой конфигурации каналы во входном потоке выводятся непосредственно в оборудование без изменений и не интерпретируются как позиции говорящего. Дополнительные сведения см. в DSSPEAKER_DIRECTOUT конфигурации динамиков.

Конфигурация динамиков для формата окружного канала 5.1 определяется константой KSAUDIO_SPEAKER_5POINT1_SURROUND в предыдущей таблице. Геометрический макет динамиков показан на следующем рисунке, в котором показаны позиции переднего левого, переднего, правого, переднего, переднего, левого и бокового правого говорящего. На рисунке не указан динамик низкой частоты, так как он является ненаправленным.

диаграмма, иллюстрирующая конфигурацию 5.1-каналов, окружающую динамику; Не отображается низкочастотный динамик.

В этом примере в следующем списке показано упорядочение шести каналов в каждом блоке звуковых данных:

  1. SPEAKER_FRONT_LEFT

  2. SPEAKER_FRONT_RIGHT

  3. SPEAKER_FRONT_CENTER

  4. SPEAKER_LOW_FREQUENCY

  5. SPEAKER_SIDE_LEFT

  6. SPEAKER_SIDE_RIGHT

Для формата PCM с размером 16-разрядного образца каждый блок звуковых данных занимает 12 байтов, которые упорядочены, как показано в следующей таблице.

Байт Звуковые данные
0 Передний левый (8 LSB)
1 Передний левый (8 MSB)
2 Передний правый (8 LSB)
3 Передний правый (8 MSB)
4 Front Center (8 LSB)
5 Интерфейсный центр (8 MSB)
6 Low Freq (8 LSBs)
7 Low Freq (8 MSB)
8 Левая сторона (8 LSB)
9 Слева на стороне (8 МСБ)
10 Справа от стороны (8 LSB)
11 Справа на стороне (8 MSB)

Требования

Требование Ценность
заголовка ksmedia.h (include Ksmedia.h)

См. также

KSPROPERTY_AUDIO_CHANNEL_CONFIG

WAVEFORMATEXTENSIBLE