Partilhar via


GUIDs de subformato para formatos compactados de áudio

Para o Windows 7, novos GUIDs de subformato foram adicionados ao arquivo de cabeçalho Ksmedia.h para fornecer suporte para formatos de áudio compactados. GUIDs de subformato indicam o subformato específico de um formato de dados. Esses formatos são definidos pelo padrão da Consumer Electronics Association (CEA) para áudio não compactado.

Como resultado do padrão CEA-861-D, você deve garantir que os formatos de áudio que não são suportados por um dispositivo CEA não sejam transmitidos a esse dispositivo. Interface multimídia de alta definição (HDMI) e DisplayPort são exemplos de dispositivos CEA.

Para acesso em modo de usuário, os GUIDs são especificados no membro SubFormat de WAVEFORMATEXTENSIBLE e no membro FormatExt de WAVEFORMATEXTENSIBLE_IEC61937. Para acesso em modo kernel para drivers de áudio, os GUIDs são especificados no membro DataRange da estrutura KSDATARANGE_AUDIO.

Os GUIDs para os formatos de áudio compactados disponíveis estão listados na tabela a seguir.

Observação Nem todos os formatos disponíveis são suportados pelo driver de classe de áudio HD do Windows 7. Os formatos suportados pelo Windows 7 são indicados nas tabelas com um asterisco (*).

Tipo CEA 861 GUID de subformato Descrição

0x00

Consulte o fluxo.

0x01

00000000-0000-0010-8000-00aa0389b71

KSDATAFORMAT_SUBTYPE_WAVEFORMATEX

IEC 60958 PCM

0x02

00000092-0000-0010-8000-00aa00389b71

KSDATAFORMAT_SUBTYPE_IEC61937_DOLBY_DIGITAL

AC-3

0x03

00000003-0cea-0010-8000-00aa00389b71

KSDATAFORMAT_SUBTYPE_IEC61937_MPEG1

MPEG-1 (Layer1 & 2)

0x04

00000005-0cea-0010-8000-00aa00389b71

KSDATAFORMAT_SUBTYPE_IEC61937_MPEG3

MPEG-3 (Camada 3)

0x05

00000004-0cea-0010-8000-00aa0389b71

KSDATAFORMAT_SUBTYPE_IEC61937_MPEG2

MPEG-2 (Multicanal)

0x06

00000006-0cea-0010-8000-00aa0389b71

KSDATAFORMAT_SUBTYPE_IEC61937_AAC

Codificação de áudio avançada* (MPEG-2/4 AAC em ADTS)

0x07

00000008-0000-0010-8000-00aa00389b71

KSDATAFORMAT_SUBTYPE_IEC61937_DTS

Som de Teatro Digital (DTS)

0x0a

0000000a-0cea-0010-8000-00aa00389b71

KSDATAFORMAT_SUBTYPE_IEC61937_DOLBY_DIGITAL_PLUS

Dolby Digital Plus

0x0f

Não utilizado.

Reserved

Os GUIDs para formatos de áudio transmitidos em pacotes de amostra de áudio de alta taxa de bits estão listados na tabela a seguir.

Tipo CEA 861 GUID de subformato Descrição

0x0b

0000000b-0cea-0010-8000-00aa00389b71

KSDATAFORMAT_SUBTYPE_IEC61937_DTS_HD

DTS-HD (24 bits, 95KHz)

0x0c

0000000c-0cea-0010-8000-00aa0389b71

KSDATAFORMAT_SUBTYPE_IEC61937_DOLBY_MLP

MAT(MLP)- Embalagem sem perdas Meridian (Dolby Digital True HD - 24-bit 196KHz/até 18M bps, 8 canais)

0x0e

00000164-0000-0010-8000-00aa00389b71

KSDATAFORMAT_SUBTYPE_IEC61937_WMA_PRO

Windows Media Audio (WMA) Pro

Os GUIDs para formatos de áudio compactados que podem ser implementados por soluções de terceiros estão listados na tabela a seguir.

Tipo CEA 861 GUID de subformato Descrição

0x08

00000008-0cea-0010-8000-00aa00389b71

KSDATAFORMAT_SUBTYPE_IEC61937_ATRAC

Codificação Acústica por Transformada Adaptativa (ATRAC)

0x09

00000009-0cea-0010-8000-00aa00389b71

KSDATAFORMAT_SUBTYPE_IEC61937_ONE_BIT_AUDIO

Áudio de um bit

0x0d

0000000D-0CEA-0010-8000-00AA00389B71

KSDATAFORMAT_SUBTYPE_IEC61937_DST

Transporte de fluxo direto (DST)

O exemplo de código a seguir mostra como um driver de miniporta de áudio define e inicializa uma estrutura KSDATARANGE_AUDIO para uso com um coletor HDMI que tem um decodificador Dolby Digital Plus totalmente funcional. Um dissipador deste tipo suporta taxas de transferência de 44,1 e 48 KHz.

Para uma taxa de amostragem de 48 KHz, um driver de miniporta de áudio usa o código a seguir para definir e inicializar uma estrutura KSDATARANGE_AUDIO. Este código mostra os intervalos de dados que o driver de miniporta de áudio expõe:

//Define and initialize KSDATARANGE_AUDIO structure
// for use with a sample rate of 48 KHz.
KSDATARANGE_AUDIO drDDPlus48;
drDDPlus48.DataRange.FormatSize = sizeof(KSDATARANGE_AUDIO);
drDDPlus48.DataRange.Flags = 0; // Ignored.
drDDPlus48.DataRange.SampleSize = 0; // Ignored.
drDDPlus48.DataRange.Reserved = 0;
drDDPlus48.DataRange.MajorFormat = KSDATAFORMAT_TYPE_AUDIO;
drDDPlus48.DataRange.SubFormat = KSDATAFORMAT_SUBTYPE_IEC61937_DOLBY_DIGITAL_PLUS;
drDDPlus48.DataRange.Specifier = KSDATAFORMAT_SPECIFIER_WAVEFORMATEX;
drDDPlus48.MaximumChannels = 2
drDDPlus48.MinimumBitsPerSample = 16; // All encoded data is transmitted at
drDDPlus48.MaximumBitsPerSample = 16; // 16 bits over IEC 60958.
drDDPlus48.MinimumSampleFrequency = 192000; // 48 KHz * 4.
drDDPlus48.MaximumSampleFrequency = 192000;

Para uma taxa de amostragem de 44,1 KHz, um driver de miniporta de áudio usa o seguinte código para definir e inicializar uma estrutura KSDATARANGE_AUDIO:

//Define and initialize KSDATARANGE_AUDIO structure
// for use with a sample rate of 41.1 KHz.
KSDATARANGE_AUDIO drDDPlus44;
drDDPlus44.DataRange.FormatSize = sizeof(KSDATARANGE_AUDIO);
drDDPlus44.DataRange.Flags = 0 // Ignored.
drDDPlus44.DataRange.SampleSize = 0 // Ignored.
drDDPlus44.DataRange.Reserved = 0; 
drDDPlus44.DataRange.MajorFormat = KSDATAFORMAT_TYPE_AUDIO;
drDDPlus44.DataRange.SubFormat = KSDATAFORMAT_SUBTYPE_IEC61937_DOLBY_DIGITAL_PLUS;
drDDPlus44.DataRange.Specifier = KSDATAFORMAT_SPECIFIER_WAVEFORMATEX;
drDDPlus44.MaximumChannels = 2
drDDPlus44.MinimumBitsPerSample = 16; // All encoded data is transmitted at
drDDPlus44.MaximumBitsPerSample = 16; // 16 bits over IEC 60958.
drDDPlus44.MinimumSampleFrequency = 176400; // 44.1 KHz * 4
drDDPlus44.MaximumSampleFrequency = 176400;