estructura KSAUDIO_CHANNEL_CONFIG (ksmedia.h)
La estructura KSAUDIO_CHANNEL_CONFIG especifica la configuración de canales dentro del formato de datos de una secuencia de audio.
Sintaxis
typedef struct {
LONG ActiveSpeakerPositions;
} KSAUDIO_CHANNEL_CONFIG, *PKSAUDIO_CHANNEL_CONFIG;
Miembros
ActiveSpeakerPositions
Especifica tanto el número de canales como la asignación de esos canales a las posiciones del hablante. Este miembro es una máscara de bits en la que cada bit dentro de la máscara corresponde a una posición de altavoz determinada. Si se establece un bit de máscara, la secuencia de audio contiene un canal asignado a la posición del altavoz que representa el bit de máscara. El número de canales de la secuencia se obtiene contando cuántos números aparecen en la máscara de bits. Para obtener más información, vea la sección Comentarios que se muestra más adelante.
Comentarios
Esta estructura se usa para establecer u obtener el valor de datos de la propiedad KSPROPERTY_AUDIO_CHANNEL_CONFIG .
En la tabla siguiente se muestran los bits de marca definidos para el miembro ActiveSpeakerPositions .
Posición del hablante | Bit de marca |
---|---|
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 |
Cada formato de datos de audio contiene canales para una o varias de las posiciones anteriores del hablante. El número de canales simplemente es igual al número de bits de marca distinto de cero en el miembro ActiveSpeakerPositions .
Las posiciones relativas de los canales dentro de cada bloque de datos de audio siempre siguen el mismo orden relativo que los bits de marca de la tabla anterior. Por ejemplo, si ActiveSpeakerPositions contiene el valor 0x00000033, el formato define cuatro canales de audio asignados para la reproducción en los altavoces front-left, front-right, back-left y back-right, respectivamente. Los datos del canal se deben intercalar en ese orden dentro de cada bloque. (Esta es la configuración de KSAUDIO_SPEAKER_QUAD que aparece en la segunda de las dos tablas siguientes).
En la tabla siguiente se muestran las configuraciones del altavoz definidas para DVD.
Configuración | Posición del hablante |
---|---|
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 |
En la tabla siguiente se muestran las configuraciones de altavoz definidas para DirectSound.
Configuración | Posiciones del orador |
---|---|
KSAUDIO_SPEAKER_DIRECTOUT | 0 (sin altavoces) |
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 |
La configuración del altavoz KSAUDIO_SPEAKER_7POINT1 está obsoleta y ya no se admite.
En la tabla anterior, la constante KSAUDIO_SPEAKER_DIRECTOUT tiene un valor de cero, lo que significa que no se asigna ninguna posición del hablante a los canales de la secuencia multicanal. Por ejemplo, el canal cero podría representar percusión, el canal 1 podría representar trompeta, el canal 2 podría representar la voz, etc. En esta configuración, los canales del flujo de entrada se generan directamente en el hardware sin modificaciones y sin interpretarse como posiciones del hablante. Para obtener más información, consulte DSSPEAKER_DIRECTOUT Speaker Configuration.
La configuración del altavoz para un formato envolvente de canal 5.1 se define mediante la constante KSAUDIO_SPEAKER_5POINT1_SURROUND de la tabla anterior. El diseño geométrico de los altavoces se muestra en la ilustración siguiente, que muestra las posiciones de los altavoces frontal izquierda, frontal derecha, frontal, lateral izquierda y derecha. La figura omite el altavoz de baja frecuencia porque no es direccionable.
En este ejemplo, en la lista siguiente se muestra el orden de los seis canales dentro de cada bloque de datos de audio:
SPEAKER_FRONT_LEFT
SPEAKER_FRONT_RIGHT
SPEAKER_FRONT_CENTER
SPEAKER_LOW_FREQUENCY
SPEAKER_SIDE_LEFT
SPEAKER_SIDE_RIGHT
Para un formato PCM con un tamaño de muestra de 16 bits, cada bloque de datos de audio ocupa 12 bytes, que se ordenan como se muestra en la tabla siguiente.
Byte | Datos de audio |
---|---|
0 | Front Left (8 LSB) |
1 | Front Left (8 MSB) |
2 | Front Right (8 LSB) |
3 | Front Right (8 MSB) |
4 | Front Center (8 LSB) |
5 | Front Center (8 MSB) |
6 | Freq bajo (8 LSB) |
7 | Freq bajo (8 MSB) |
8 | Lado izquierdo (8 LSB) |
9 | Lado izquierdo (8 MSB) |
10 | Lado derecho (8 LSB) |
11 | Lado derecho (8 MSB) |
Requisitos
Requisito | Valor |
---|---|
Header | ksmedia.h (incluye Ksmedia.h) |