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;