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.

Diagrama que ilustra una configuración de altavoz envolvente de canal 5.1; No se muestra el altavoz de baja frecuencia.

En este ejemplo, en la lista siguiente se muestra el orden de los seis canales dentro de cada bloque de datos de audio:

  1. SPEAKER_FRONT_LEFT

  2. SPEAKER_FRONT_RIGHT

  3. SPEAKER_FRONT_CENTER

  4. SPEAKER_LOW_FREQUENCY

  5. SPEAKER_SIDE_LEFT

  6. 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)

Consulte también

KSPROPERTY_AUDIO_CHANNEL_CONFIG

WAVEFORMATEXTENSIBLE