Compartir a través de


GUID de subformato para formatos de audio comprimidos

Para Windows 7, se han agregado nuevos GUID de subformato al archivo de encabezado Ksmedia.h para proporcionar compatibilidad con formatos de audio comprimidos. Los GUID de subformato indican el subformato específico de un formato de datos. Estos formatos se definen mediante el estándar Consumer Electronics Association (CEA) para audio sin comprimir.

Como resultado del estándar CEA-861-D, debe asegurarse de que los formatos de audio que no son compatibles con un dispositivo CEA no se transmiten a este tipo de dispositivo. La interfaz multimedia de alta definición (HDMI) y DisplayPort son ejemplos de dispositivos CEA.

Para el acceso en modo de usuario, los GUID se especifican en el miembro SubFormat de WAVEFORMATEXTENSIBLE y en el miembro FormatExt de WAVEFORMATEXTENSIBLE_IEC61937. Para el acceso en modo kernel para controladores de audio, los GUID se especifican en el miembro DataRange de la estructura KSDATARANGE_AUDIO.

Los GUID para los formatos de audio comprimido disponibles se enumeran en la tabla siguiente.

Nota No todos los formatos disponibles son compatibles con el controlador de clase de audio hd de Windows 7. Los formatos admitidos por Windows 7 se indican en las tablas con un asterisco (*).

Tipo CEA 861 GUID de subformato Descripción

0x00

Consulte la secuencia.

0x01

00000000-0000-0010-8000-00aa00389b71

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 (Capa1 y 2)

0x04

00000005-0cea-0010-8000-00aa00389b71

KSDATAFORMAT_SUBTYPE_IEC61937_MPEG3

MPEG-3 (capa 3)

0x05

00000004-0cea-0010-8000-00aa00389b71

KSDATAFORMAT_SUBTYPE_IEC61937_MPEG2

MPEG-2 (multicanal)

0x06

00000006-0cea-0010-8000-00aa00389b71

KSDATAFORMAT_SUBTYPE_IEC61937_AAC

Codificación avanzada de audio* (MPEG-2/4 AAC en ADTS)

0x07

00000008-0000-0010-8000-00aa00389b71

KSDATAFORMAT_SUBTYPE_IEC61937_DTS

Sonido de teatro digital (DTS)

0x0a

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

KSDATAFORMAT_SUBTYPE_IEC61937_DOLBY_DIGITAL_PLUS

Dolby Digital Plus

0x0f

Sin usar.

Reserved

Los GUID para formatos de audio que se transmiten en paquetes de muestra de audio de alta velocidad de bits se muestran en la tabla siguiente.

Tipo CEA 861 GUID de subformato Descripción

0x0b

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

KSDATAFORMAT_SUBTYPE_IEC61937_DTS_HD

DTS-HD (24 bits, 95KHz)

0x0c

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

KSDATAFORMAT_SUBTYPE_IEC61937_DOLBY_MLP

MAT(MLP)- Empaquetado sin pérdida de meridiano (Dolby Digital True HD - 24 bits de 196KHz/hasta 18M bps, 8 canales)

0x0e

00000164-0000-0010-8000-00aa00389b71

KSDATAFORMAT_SUBTYPE_IEC61937_WMA_PRO

Windows Media Audio (WMA) Pro

Los GUID para formatos de audio comprimidos que las soluciones de terceros pueden implementar se muestran en la tabla siguiente.

Tipo CEA 861 GUID de subformato Descripción

0x08

00000008-0cea-0010-8000-00aa00389b71

KSDATAFORMAT_SUBTYPE_IEC61937_ATRAC

Codificación acústica de transformación adaptable (ATRAC)

0x09

00000009-0cea-0010-8000-00aa00389b71

KSDATAFORMAT_SUBTYPE_IEC61937_ONE_BIT_AUDIO

Audio de un solo bit

0x0d

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

KSDATAFORMAT_SUBTYPE_IEC61937_DST

Transporte directo de secuencias (DST)

En el ejemplo de código siguiente se muestra cómo un controlador de miniporte de audio define e inicializa una estructura de KSDATARANGE_AUDIO para su uso con un receptor HDMI que tiene un descodificador Dolby Digital Plus totalmente funcional. Un receptor de este tipo admite velocidades de transferencia de 44,1 y 48 KHz.

Para una frecuencia de muestreo de 48 KHz, un controlador de miniporte de audio usa el código siguiente para definir e inicializar una estructura de KSDATARANGE_AUDIO . Este código muestra los intervalos de datos que expone el controlador de miniporte de audio:

//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 una frecuencia de muestreo de 44,1 KHz, un controlador de miniporte de audio usa el código siguiente para definir e inicializar una estructura de 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;