estrutura KSAUDIO_CHANNEL_CONFIG (ksmedia.h)
A estrutura KSAUDIO_CHANNEL_CONFIG especifica a configuração de canais no formato de dados de um fluxo de áudio.
Sintaxe
typedef struct {
LONG ActiveSpeakerPositions;
} KSAUDIO_CHANNEL_CONFIG, *PKSAUDIO_CHANNEL_CONFIG;
Membros
ActiveSpeakerPositions
Especifica o número de canais e a atribuição desses canais para posições de locutor. Esse membro é uma máscara de bits na qual cada bit dentro da máscara corresponde a uma posição de alto-falante específica. Se um bit de máscara for definido, o fluxo de áudio conterá um canal atribuído à posição do alto-falante que o bit de máscara representa. O número de canais no fluxo é obtido contando quantos números aparecem na máscara de bits. Para obter mais informações, consulte a seção Comentários a seguir.
Comentários
Essa estrutura é usada para definir ou obter o valor de dados para a propriedade KSPROPERTY_AUDIO_CHANNEL_CONFIG .
A tabela a seguir mostra os bits de sinalizador definidos para o membro ActiveSpeakerPositions .
Posição do alto-falante | Bit de sinalizador |
---|---|
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 |
Cada formato de dados de áudio contém canais para uma ou mais das posições anteriores do locutor. O número de canais simplesmente é igual ao número de bits de sinalizador diferente de zero no membro ActiveSpeakerPositions .
As posições relativas dos canais dentro de cada bloco de dados de áudio sempre seguem a mesma ordenação relativa que os bits de sinalizador na tabela anterior. Por exemplo, se ActiveSpeakerPositions contiver o valor 0x00000033, o formato definirá quatro canais de áudio atribuídos para reprodução aos alto-falantes front-left, front-right, back-left e back-right, respectivamente. Os dados do canal devem ser intercalados nessa ordem dentro de cada bloco. (Essa é a configuração KSAUDIO_SPEAKER_QUAD que aparece no segundo das duas tabelas a seguir.)
A tabela a seguir mostra as configurações do locutor definidas para DVD.
Configuração | Posição do alto-falante |
---|---|
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 |
A tabela a seguir mostra as configurações do locutor definidas para DirectSound.
Configuração | Posições do alto-falante |
---|---|
KSAUDIO_SPEAKER_DIRECTOUT | 0 (sem alto-falantes) |
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 |
A configuração do alto-falante KSAUDIO_SPEAKER_7POINT1 está obsoleta e não tem mais suporte.
Na tabela anterior, a constante KSAUDIO_SPEAKER_DIRECTOUT tem um valor zero, o que significa que nenhuma posição de locutor é atribuída aos canais no fluxo multicanal. Por exemplo, o canal zero pode representar percussão, o canal 1 pode representar trompete, o canal 2 pode representar voz e assim por diante. Nessa configuração, os canais no fluxo de entrada são gerados diretamente para o hardware sem modificação e sem serem interpretados como posições de alto-falante. Para obter mais informações, consulte DSSPEAKER_DIRECTOUT Configuração do Locutor.
A configuração do alto-falante para um formato surround de 5,1 canais é definida pela constante KSAUDIO_SPEAKER_5POINT1_SURROUND na tabela anterior. O layout geométrico dos alto-falantes é mostrado na figura a seguir, que mostra as posições dos alto-falantes front-left, front-right, front-center, side-left e side-right. A figura omite o alto-falante de baixa frequência porque ele não é direcional.
Para este exemplo, a lista a seguir mostra a ordenação dos seis canais dentro de cada bloco de dados de áudio:
SPEAKER_FRONT_LEFT
SPEAKER_FRONT_RIGHT
SPEAKER_FRONT_CENTER
SPEAKER_LOW_FREQUENCY
SPEAKER_SIDE_LEFT
SPEAKER_SIDE_RIGHT
Para um formato PCM com um tamanho de exemplo de 16 bits, cada bloco de dados de áudio ocupa 12 bytes, que são ordenados conforme mostrado na tabela a seguir.
Byte | Dados de áudio |
---|---|
0 | Front Left (8 LSBs) |
1 | Front Left (8 MSBs) |
2 | Front Right (8 LSBs) |
3 | Front Right (8 MSBs) |
4 | Front Center (8 LSBs) |
5 | Front Center (8 MSBs) |
6 | Low Freq (8 LSBs) |
7 | Baixa freq (8 MSBs) |
8 | Side Left (8 LSBs) |
9 | Side Left (8 MSBs) |
10 | Lado Direito (8 LSBs) |
11 | Lado Direito (8 MSBs) |
Requisitos
Requisito | Valor |
---|---|
Cabeçalho | ksmedia.h (inclua Ksmedia.h) |