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.
Pour cet exemple, la liste suivante montre l’ordre des six canaux dans chaque bloc de données audio :
SPEAKER_FRONT_LEFT
SPEAKER_FRONT_RIGHT
SPEAKER_FRONT_CENTER
SPEAKER_LOW_FREQUENCY
SPEAKER_SIDE_LEFT
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) |