KSAUDIO_CHANNEL_CONFIG struttura (ksmedia.h)
La struttura KSAUDIO_CHANNEL_CONFIG specifica la configurazione dei canali nel formato dati di un flusso audio.
Sintassi
typedef struct {
LONG ActiveSpeakerPositions;
} KSAUDIO_CHANNEL_CONFIG, *PKSAUDIO_CHANNEL_CONFIG;
Members
ActiveSpeakerPositions
Specifica sia il numero di canali che l'assegnazione di tali canali alle posizioni dell'altoparlante. Questo membro è una maschera di bit in cui ogni bit all'interno della maschera corrisponde a una determinata posizione dell'altoparlante. Se viene impostato un bit di maschera, il flusso audio contiene un canale assegnato alla posizione dell'altoparlante che rappresenta il bit maschera. Il numero di canali nel flusso viene ottenuto conteggiando il numero di numeri visualizzati nella maschera di bit. Per ulteriori informazioni, vedere la sezione Osservazioni successiva.
Commenti
Questa struttura viene usata per impostare o ottenere il valore dei dati per la proprietà KSPROPERTY_AUDIO_CHANNEL_CONFIG .
La tabella seguente mostra i bit di flag definiti per il membro ActiveSpeakerPositions .
Posizione altoparlante | 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 |
Ogni formato di dati audio contiene canali per una o più posizioni dell'altoparlante precedente. Il numero di canali equivale semplicemente al numero di bit di flag non zero nel membro ActiveSpeakerPositions .
Le posizioni relative dei canali all'interno di ogni blocco di dati audio seguono sempre lo stesso ordinamento relativo dei bit del flag nella tabella precedente. Ad esempio, se ActiveSpeakerPositions contiene il valore 0x00000033, il formato definisce rispettivamente quattro canali audio assegnati per la riproduzione a sinistra, front-destra, back-left e back-right. I dati del canale devono essere interleaved in tale ordine all'interno di ogni blocco. Si tratta della configurazione KSAUDIO_SPEAKER_QUAD visualizzata nella seconda delle due tabelle seguenti.
Nella tabella seguente vengono illustrate le configurazioni dell'altoparlante definite per DVD.
Configurazione | Posizione altoparlante |
---|---|
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 |
Nella tabella seguente vengono illustrate le configurazioni dell'altoparlante definite per DirectSound.
Configurazione | Posizioni del relatore |
---|---|
KSAUDIO_SPEAKER_DIRECTOUT | 0 (senza altoparlanti) |
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 configurazione dell'altoparlante KSAUDIO_SPEAKER_7POINT1 è obsoleta e non è più supportata.
Nella tabella precedente, la costante KSAUDIO_SPEAKER_DIRECTOUT ha un valore pari a zero, il che significa che nessuna posizione dell'altoparlante viene assegnata ai canali nel flusso multicanale. Ad esempio, il canale zero potrebbe rappresentare le percussioni, il canale 1 potrebbe rappresentare tromba, canale 2 potrebbe rappresentare la voce e così via. In questa configurazione, i canali nel flusso di input vengono restituiti direttamente all'hardware senza modifiche e senza essere interpretati come posizioni altoparlanti. Per altre informazioni, vedere DSSPEAKER_DIRECTOUT Configurazione altoparlanti.
La configurazione dell'altoparlante per un formato surround a 5.1 canali è definita dalla costante KSAUDIO_SPEAKER_5POINT1_SURROUND nella tabella precedente. Il layout geometrico degli altoparlanti è illustrato nella figura seguente, che mostra le posizioni delle altoparlanti front-left, front-right, front-center, lato sinistro e laterale destro. La figura omette l'altoparlante a bassa frequenza perché non è bidirezionale.
Per questo esempio, l'elenco seguente mostra l'ordinamento dei sei canali all'interno di ogni blocco di dati audio:
SPEAKER_FRONT_LEFT
SPEAKER_FRONT_RIGHT
SPEAKER_FRONT_CENTER
SPEAKER_LOW_FREQUENCY
SPEAKER_SIDE_LEFT
SPEAKER_SIDE_RIGHT
Per un formato PCM con dimensioni di esempio a 16 bit, ogni blocco di dati audio occupa 12 byte, ordinati come illustrato nella tabella seguente.
Byte | Dati audio |
---|---|
0 | Front Left (8 LSBs) |
1 | Anteriore sinistra (8 MB) |
2 | Front Right (8 LSBs) |
3 | Front Right (8 MSBs) |
4 | Front Center (8 LSBs) |
5 | Front Center (8 MB) |
6 | Bassa frequenza (8 LSBs) |
7 | Bassa frequenza (8 MB) |
8 | Lato sinistro (8 LSBs) |
9 | Lato sinistro (8 MB) |
10 | Lato destro (8 LSBs) |
11 | Lato destro (8 MB) |
Requisiti
Requisito | Valore |
---|---|
Intestazione | ksmedia.h (includere Ksmedia.h) |