структура 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 в предыдущей таблице. Геометрический макет динамиков показан на следующем рисунке, в котором показаны позиции переднего левого, переднего, правого, переднего, переднего, левого и бокового правого говорящего. На рисунке не указан динамик низкой частоты, так как он является ненаправленным.
В этом примере в следующем списке показано упорядочение шести каналов в каждом блоке звуковых данных:
SPEAKER_FRONT_LEFT
SPEAKER_FRONT_RIGHT
SPEAKER_FRONT_CENTER
SPEAKER_LOW_FREQUENCY
SPEAKER_SIDE_LEFT
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) |