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;
Angehörige
ActiveSpeakerPositions
Gibt sowohl die Anzahl der Kanäle als auch die Zuweisung dieser Kanäle zu Sprecherpositionen an. Dieses Element ist eine Bitmaske, in der jedes Bit innerhalb der Maske einer bestimmten Lautsprecherposition entspricht. Wenn ein Maskenbit festgelegt ist, enthält der Audiodatenstrom einen Kanal, der der Lautsprecherposition zugewiesen ist, die das Maskenbit darstellt. Die Anzahl der Kanäle im Datenstrom wird abgerufen, indem gezählt wird, wie viele Nummern in der Bitmaske angezeigt werden. Weitere Informationen finden Sie im folgenden Abschnitt "Hinweise".
Bemerkungen
Diese Struktur wird verwendet, um den Datenwert für die eigenschaft KSPROPERTY_AUDIO_CHANNEL_CONFIG festzulegen oder abzurufen.
In der folgenden Tabelle sind die Flagbits aufgeführt, die für das ActiveSpeakerPositions-Element-Element definiert sind.
Lautsprecherposition | Flagbit |
---|---|
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 von Kanälen entspricht einfach der Anzahl von Nichtzero-Flagbits im ActiveSpeakerPositions Member.
Die relativen Positionen der Kanäle innerhalb jedes Audiodatenblocks folgen immer derselben relativen Reihenfolge wie die Flagbits in der vorherigen Tabelle. Wenn z. B. ActiveSpeakerPositions- den Wert 0x00000033 enthält, definiert das Format vier Audiokanäle, die für die Wiedergabe an die Vorder-links-, Front-right-, Back-left- und Back-right-Lautsprecher zugewiesen sind. Die Kanaldaten sollten in dieser Reihenfolge innerhalb jedes Blocks interleaviert 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 | Lautsprecherposition |
---|---|
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 Lautsprecher) |
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 vorstehenden Tabelle weist die Konstante KSAUDIO_SPEAKER_DIRECTOUT einen Wert von Null auf, was bedeutet, dass den Kanälen im Multichannelstream keine Sprecherpositionen zugewiesen werden. Beispielsweise kann Kanal 0 Perkussion darstellen, Kanal 1 könnte Trumpet darstellen, Kanal 2 könnte Stimme darstellen usw. In dieser Konfiguration werden die Kanäle im Eingabedatenstrom ohne Änderung direkt an die Hardware ausgegeben, ohne dass sie als Sprecherpositionen interpretiert werden. Weitere Informationen finden Sie unter DSSPEAKER_DIRECTOUT Lautsprecherkonfiguration.
Die Lautsprecherkonfiguration für ein 5.1-Kanal-Surround-Format 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 Front-left-, Front-right-, Front-Center-, side-left- und side-right-Lautsprecher zeigt. In der Abbildung wird der Niederfrequenzlautsprecher weggelassen, da er nicht direktional ist.
In diesem Beispiel wird in der folgenden Liste die Reihenfolge der sechs Kanäle innerhalb jedes Audiodatenblocks angezeigt:
SPEAKER_FRONT_LEFT
SPEAKER_FRONT_RIGHT
SPEAKER_FRONT_CENTER
SPEAKER_LOW_FREQUENCY
SPEAKER_SIDE_LEFT
SPEAKER_SIDE_RIGHT
Bei einem PCM-Format mit einer 16-Bit-Beispielgröße belegt jeder Block von Audiodaten 12 Byte, die wie in der folgenden Tabelle dargestellt geordnet sind.
Byte | Audiodaten |
---|---|
0 | Front Left (8 LSBs) |
1 | Links vorne (8 MSBs) |
2 | Front Right (8 LSBs) |
3 | Vorder rechts (8 MSBs) |
4 | Front Center (8 LSBs) |
5 | Front Center (8 MSBs) |
6 | Low Freq (8 LSBs) |
7 | Low 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 (enthalten Ksmedia.h) |