structure KSAUDIO_CHANNEL_CONFIG (ksmedia.h)

La structure KSAUDIO_CHANNEL_CONFIG spécifie la configuration des canaux dans le format de données d’un flux audio.

Syntaxe

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

Membres

ActiveSpeakerPositions

Spécifie à la fois le nombre de canaux et l’affectation de ces canaux aux positions d’orateur. Ce membre est un masque de bits dans lequel chaque bit dans le masque correspond à une position particulière de l’orateur. Si un bit de masque est défini, le flux audio contient un canal qui est affecté à la position du haut-parleur que le bit de masque représente. Le nombre de canaux dans le flux est obtenu en comptant le nombre de nombres 1 qui apparaissent dans le masque de bits. Pour plus d'informations, consultez la section Notes qui suit.

Remarques

Cette structure permet de définir ou d’obtenir la valeur de données de la propriété KSPROPERTY_AUDIO_CHANNEL_CONFIG .

Le tableau suivant montre les bits d’indicateur définis pour le membre ActiveSpeakerPositions .

Position de l’orateur Bit d’indicateur
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

Chaque format de données audio contient des canaux pour une ou plusieurs des positions précédentes de l’orateur. Le nombre de canaux est simplement égal au nombre de bits d’indicateur différents de zéro dans le membre ActiveSpeakerPositions .

Les positions relatives des canaux dans chaque bloc de données audio suivent toujours le même ordre relatif que les bits d’indicateur dans le tableau précédent. Par exemple, si ActiveSpeakerPositions contient la valeur 0x00000033, le format définit quatre canaux audio qui sont affectés à la lecture aux haut-parleurs front-left, front-right, back-left et back-right, respectivement. Les données de canal doivent être entrelacées dans cet ordre dans chaque bloc. (Il s’agit de la configuration KSAUDIO_SPEAKER_QUAD qui apparaît dans la deuxième des deux tables suivantes.)

Le tableau suivant présente les configurations d’orateur définies pour le DVD.

Configuration Position de l’orateur
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

Le tableau suivant montre les configurations d’orateur définies pour DirectSound.

Configuration Positions de l’orateur
KSAUDIO_SPEAKER_DIRECTOUT 0 (pas de haut-parleurs)
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 configuration de l’orateur KSAUDIO_SPEAKER_7POINT1 est obsolète et n’est plus prise en charge.

Dans le tableau précédent, la constante KSAUDIO_SPEAKER_DIRECTOUT a la valeur zéro, ce qui signifie qu’aucune position d’orateur n’est affectée aux canaux dans le flux multicanal. Par exemple, le canal zéro peut représenter la percussion, le canal 1 peut représenter la trompette, le canal 2 peut représenter la voix, et ainsi de suite. Dans cette configuration, les canaux du flux d’entrée sont directement générés vers le matériel sans modification et sans être interprétés comme des positions d’orateur. Pour plus d’informations, consultez Configuration de l’orateur DSSPEAKER_DIRECTOUT.

La configuration de l’orateur pour un format surround 5.1 canaux est définie par la constante KSAUDIO_SPEAKER_5POINT1_SURROUND dans le tableau précédent. La disposition géométrique des haut-parleurs est illustrée dans la figure suivante, qui montre les positions des haut-parleurs avant-gauche, avant-droit, avant-centre, côté gauche et côté droit. La figure omet le haut-parleur à basse fréquence, car il n’est pas direct.

Diagramme illustrant une configuration d’enceinte surround 5.1 canaux ; l’orateur basse fréquence n’est pas affiché.

Pour cet exemple, la liste suivante montre l’ordre des six canaux dans chaque bloc de données 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

Pour un format PCM avec une taille d’exemple 16 bits, chaque bloc de données audio occupe 12 octets, qui sont triés comme indiqué dans le tableau suivant.

Byte Données audio
0 Avant gauche (8 LSB)
1 Front gauche (8 MMB)
2 Front droit (8 LSB)
3 Front droit (8 MMB)
4 Front Center (8 LSB)
5 Front Center (8 MMB)
6 Faible fréquence (8 LSB)
7 Faible fréquence (8 MMB)
8 Côté gauche (8 LSB)
9 Côté gauche (8 MMB)
10 Côté droit (8 LSB)
11 Côté droit (8 MMB)

Configuration requise

Condition requise Valeur
En-tête ksmedia.h (inclure Ksmedia.h)

Voir aussi

KSPROPERTY_AUDIO_CHANNEL_CONFIG

WAVEFORMATEXTENSIBLE