KSAUDIO_CHANNEL_CONFIG estrutura (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 específica do alto-falante. Se um bit de máscara estiver 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.
Observações
Essa estrutura é usada para definir ou obter o valor de dados da propriedade KSPROPERTY_AUDIO_CHANNEL_CONFIG.
A tabela a seguir mostra os bits de sinalizador definidos para o membro ActiveSpeakerPositions.
Posição do locutor | 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 não zero no membro ActiveSpeakerPositions.
As posições relativas dos canais em 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 para os 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. (Esta é a configuração de KSAUDIO_SPEAKER_QUAD que aparece no segundo das duas tabelas a seguir.)
A tabela a seguir mostra as configurações do alto-falante definidas para DVD.
Configuração | Posição do locutor |
---|---|
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 alto-falante definidas para DirectSound.
Configuração | Posições do locutor |
---|---|
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 do locutor é atribuída aos canais no fluxo multicanal. Por exemplo, o canal zero pode representar a 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_DIRECTOUTde 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 em 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 | Freq baixo (8 LSBs) |
7 | Freq baixo (8 MSBs) |
8 | Lado esquerdo (8 LSBs) |
9 | Lado esquerdo (8 MSBs) |
10 | Lado direito (8 LSBs) |
11 | Lado direito (8 MSBs) |
Requisitos
Requisito | Valor |
---|---|
cabeçalho | ksmedia.h (inclua Ksmedia.h) |