GUID di formattazione secondaria per formati audio compressi
Per Windows 7, sono stati aggiunti nuovi GUID di formato secondario al file di intestazione Ksmedia.h per fornire supporto per i formati audio compressi. I GUID di formato secondario indicano il formato secondario specifico di un formato dati. Questi formati sono definiti dallo standard CeA (Consumer Electronics Association) per l'audio non compresso.
In seguito allo standard CEA-861D, è necessario assicurarsi che i formati audio non supportati da un dispositivo CEA non vengano trasmessi a tale dispositivo. Hdmi (High Definition Multimedia Interface) e DisplayPort sono esempi di dispositivi CEA.
Per l'accesso in modalità utente, i GUID vengono specificati nel membro SubFormat di WAVEFORMATEXTENSIBLE e nel membro FormatExt di WAVEFORMATEXTENSIBLE_IEC61937. Per l'accesso in modalità kernel per i driver audio, i GUID vengono specificati nel membro DataRange della struttura KSDATARANGE_AUDIO .
I GUID per i formati audio compressi disponibili sono elencati nella tabella seguente.
Nota Non tutti i formati disponibili sono supportati dal driver di classe audio Windows 7 HD. I formati supportati da Windows 7 sono indicati nelle tabelle con un asterisco (*).
Tipo CEA 861 | SubFormat GUID | Descrizione |
---|---|---|
0x00 |
Fare riferimento al flusso. |
|
0x01 |
00000000-0000-0010-8000-00aa0389b71 KSDATAFORMAT_SUBTYPE_WAVEFORMATEX |
IEC 60958 PCM |
0x02 |
00000092-0000-0010-8000-00aa0389b71 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 (livello 3) |
0x05 |
00000004-0cea-0010-8000-00aa00389b71 KSDATAFORMAT_SUBTYPE_IEC61937_MPEG2 |
MPEG-2 (multicanale) |
0x06 |
00000006-0cea-0010-8000-00aa0389b71 KSDATAFORMAT_SUBTYPE_IEC61937_AAC |
Codifica audio avanzata* (MPEG-2/4 AAC in ADTS) |
0x07 |
00000008-0000-0010-8000-00aa00389b71 KSDATAFORMAT_SUBTYPE_IEC61937_DTS |
Digital Theater Sound (DTS) |
0x0a |
0000000a-0cea-0010-8000-00aa00389b71 KSDATAFORMAT_SUBTYPE_IEC61937_DOLBY_DIGITAL_PLUS |
Dolby Digital Plus |
0x0f |
Non utilizzato. |
Prenotato |
I GUID per i formati audio trasmessi in pacchetti di esempio audio a velocità elevata sono elencati nella tabella seguente.
Tipo CEA 861 | SubFormat GUID | Descrizione |
---|---|---|
0x0b |
0000000b-0cea-0010-8000-00aa00389b71 KSDATAFORMAT_SUBTYPE_IEC61937_DTS_HD |
DTS-HD (24 bit, 95 KHz) |
0x0c |
0000000c-0cea-0010-8000-00aa00389b71 KSDATAFORMAT_SUBTYPE_IEC61937_DOLBY_MLP |
MAT(MLP)- Compressione senza perdita meridiana (Dolby Digital True HD - 24 bit 196 KHz/fino a 18M bps, 8 canali) |
0x0e |
00000164-0000-0010-8000-00aa0389b71 KSDATAFORMAT_SUBTYPE_IEC61937_WMA_PRO |
Windows Media Audio (WMA) Pro |
I GUID per i formati audio compressi che possono essere implementati da soluzioni di terze parti sono elencati nella tabella seguente.
Tipo CEA 861 | SubFormat GUID | Descrizione |
---|---|---|
0x08 |
00000008-0cea-0010-8000-00aa00389b71 KSDATAFORMAT_SUBTYPE_IEC61937_ATRAC |
Codifica acustica per la trasformazione adattiva (ATRAC) |
0x09 |
00000009-0cea-0010-8000-00aa00389b71 KSDATAFORMAT_SUBTYPE_IEC61937_ONE_BIT_AUDIO |
Audio a un bit |
0x0d |
0000000d-0cea-0010-8000-00aa00389b71 KSDATAFORMAT_SUBTYPE_IEC61937_DST |
Direct Stream Transport (DST) |
L'esempio di codice seguente mostra come un driver miniport audio definisce e inizializza una struttura KSDATARANGE_AUDIO da usare con un sink HDMI con un decodificatore Dolby Digital Plus completamente funzionante. Un sink di questo tipo supporta la velocità di trasferimento di 44,1 e 48 KHz.
Per una frequenza di campionamento di 48 KHz, un driver miniport audio usa il codice seguente per definire e inizializzare una struttura KSDATARANGE_AUDIO. Questo codice mostra gli intervalli di dati esposti dal driver audio miniport:
//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;
Per una frequenza di campionamento di 44,1 KHz, un driver miniport audio usa il codice seguente per definire e inizializzare una struttura 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;