KSAUDIO_CHANNEL_CONFIG-Struktur (ksmedia.h)
Die KSAUDIO_CHANNEL_CONFIG-Struktur gibt die Konfiguration von Kanälen im Datenformat eines Audiodatenstroms an.
Syntax
typedef struct {
LONG ActiveSpeakerPositions;
} KSAUDIO_CHANNEL_CONFIG, *PKSAUDIO_CHANNEL_CONFIG;
Member
ActiveSpeakerPositions
Gibt sowohl die Anzahl der Kanäle als auch die Zuweisung dieser Kanäle zu Sprecherpositionen an. Dieser Member ist eine Bitmaske, bei der jedes Bit innerhalb der Maske einer bestimmten Sprecherposition entspricht. Wenn ein Maskenbit festgelegt ist, enthält der Audiostream einen Kanal, der der Sprecherposition zugewiesen ist, die das Maskenbit darstellt. Die Anzahl der Kanäle im Stream wird durch Zählen der Anzahl von Zahlen in der Bitmaske abgerufen. Weitere Informationen finden Sie im folgenden Abschnitt "Hinweise".
Hinweise
Diese Struktur wird verwendet, um den Datenwert für die eigenschaft KSPROPERTY_AUDIO_CHANNEL_CONFIG festzulegen oder abzurufen.
Die folgende Tabelle zeigt die Flagbits, die für das ActiveSpeakerPositions-Element definiert sind.
Sprecherposition | Flag-Bit |
---|---|
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 |
Jedes Audiodatenformat enthält Kanäle für eine oder mehrere der vorherigen Sprecherpositionen. Die Anzahl der Kanäle entspricht einfach der Anzahl der Flagbits ungleich null im ActiveSpeakerPositions-Member .
Die relativen Positionen der Kanäle in jedem Audiodatenblock folgen immer der gleichen relativen Reihenfolge wie die Flagbits in der vorherigen Tabelle. Wenn Beispielsweise ActiveSpeakerPositions den Wert 0x00000033 enthält, definiert das Format vier Audiokanäle, die für die Wiedergabe an den Lautsprechern vorne links, vorne rechts, hinten links bzw. hinten rechts zugewiesen sind. Die Kanaldaten sollten in dieser Reihenfolge in jedem Block verschachtelt werden. (Dies ist die KSAUDIO_SPEAKER_QUAD Konfiguration, die in der zweiten der beiden folgenden Tabellen angezeigt wird.)
In der folgenden Tabelle sind die Lautsprecherkonfigurationen aufgeführt, die für DVD definiert sind.
Konfiguration | Sprecherposition |
---|---|
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 |
In der folgenden Tabelle sind die Lautsprecherkonfigurationen aufgeführt, die für DirectSound definiert sind.
Konfiguration | Sprecherpositionen |
---|---|
KSAUDIO_SPEAKER_DIRECTOUT | 0 (keine Sprecher) |
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 |
Die KSAUDIO_SPEAKER_7POINT1 Lautsprecherkonfiguration ist veraltet und wird nicht mehr unterstützt.
In der vorherigen Tabelle weist die Konstante KSAUDIO_SPEAKER_DIRECTOUT den Wert 0 auf, was bedeutet, dass den Kanälen im Mehrkanalstream keine Sprecherpositionen zugewiesen werden. Kanal 0 kann z. B. Schlagzeug darstellen, Kanal 1 kann Trompete darstellen, Kanal 2 kann Stimme darstellen usw. In dieser Konfiguration werden die Kanäle im Eingabestream ohne Änderung direkt an die Hardware ausgegeben, ohne als Sprecherpositionen interpretiert zu werden. Weitere Informationen finden Sie unter DSSPEAKER_DIRECTOUT Lautsprecherkonfiguration.
Die Lautsprecherkonfiguration für ein 5.1-Kanal-Surroundformat wird durch die konstante KSAUDIO_SPEAKER_5POINT1_SURROUND in der vorherigen Tabelle definiert. Das geometrische Layout der Lautsprecher ist in der folgenden Abbildung dargestellt, die die Positionen der Lautsprecher vorne links, front-rechts, front-center, side-left und side-right zeigt. Die Abbildung lässt den Niederfrequenzlautsprecher aus, da er nicht direktional ist.
In diesem Beispiel zeigt die folgende Liste die Reihenfolge der sechs Kanäle in jedem Audiodatenblock:
SPEAKER_FRONT_LEFT
SPEAKER_FRONT_RIGHT
SPEAKER_FRONT_CENTER
SPEAKER_LOW_FREQUENCY
SPEAKER_SIDE_LEFT
SPEAKER_SIDE_RIGHT
Für ein PCM-Format mit einer 16-Bit-Beispielgröße belegt jeder Block von Audiodaten 12 Bytes, die wie in der folgenden Tabelle dargestellt geordnet werden.
Byte | Audiodaten |
---|---|
0 | Links vorne (8 LSBs) |
1 | Links vorne (8 MSBs) |
2 | Vorne rechts (8 LSBs) |
3 | Vorne rechts (8 MSBs) |
4 | Front Center (8 LSBs) |
5 | Front Center (8 MSBs) |
6 | Niedrige Freq (8 LSBs) |
7 | Niedrige Freq (8 MSBs) |
8 | Seite links (8 LSBs) |
9 | Seite links (8 MSBs) |
10 | Seite rechts (8 LSBs) |
11 | Seite rechts (8 MSBs) |
Anforderungen
Anforderung | Wert |
---|---|
Header | ksmedia.h (include Ksmedia.h) |