структура 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 байт, которые упорядочены, как показано в следующей таблице.
Byte | Звуковые данные |
---|---|
0 | Передний левый (8 LSB) |
1 | Передний левый (8 MSB) |
2 | Передняя правая (8 LSB) |
3 | Передний правый (8 MSB) |
4 | Front Center (8 LSB) |
5 | Front Center (8 MSB) |
6 | Low Freq (8 LSB) |
7 | Low Freq (8 MSB) |
8 | Боковая слева (8 LSB) |
9 | Боковая слева (8 MSB) |
10 | Боковая правая (8 LSB) |
11 | Боковая справа (8 MSB) |
Требования
Требование | Значение |
---|---|
Заголовок | ksmedia.h (включая Ksmedia.h) |