Unterformat-GUIDs für komprimierte Audioformate
Für Windows 7 wurden der Headerdatei "Ksmedia.h" neue Unterformat-GUIDs hinzugefügt, um Unterstützung für komprimierte Audioformate bereitzustellen. Unterformat-GUIDs geben das spezifische Unterformat eines Datenformats an. Diese Formate werden durch den CEA-Standard (Consumer Electronics Association) für unkomprimierte Audiodaten definiert.
Aufgrund des CEA-861-D-Standards müssen Sie sicherstellen, dass Audioformate, die von einem CEA-Gerät nicht unterstützt werden, nicht an ein solches Gerät übertragen werden. High Definition Multimedia Interface (HDMI) und DisplayPort sind Beispiele für CEA-Geräte.
Für den Benutzermoduszugriff werden die GUIDs im SubFormat-Element von WAVEFORMATEXTENSIBLE und im FormatExt-Element von WAVEFORMATEXTENSIBLE_IEC61937 angegeben. Für den Kernelmoduszugriff für Audiotreiber werden die GUIDs im DataRange-Element der KSDATARANGE_AUDIO-Struktur angegeben.
Die GUIDs für die verfügbaren komprimierten Audioformate sind in der folgenden Tabelle aufgeführt.
Hinweis: Nicht alle verfügbaren Formate werden vom Windows 7 HD-Audioklassentreiber unterstützt. Die von Windows 7 unterstützten Formate werden in den Tabellen mit einem Sternchen (*) angegeben.
CEA 861-Typ | SubFormat-GUID | Beschreibung |
---|---|---|
0x00 |
Verweisen Sie auf den Datenstrom. |
|
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 |
0000003-0cea-0010-8000-00aa00389b71 KSDATAFORMAT_SUBTYPE_IEC61937_MPEG1 |
MPEG-1 (Layer1 & 2) |
0x04 |
00000005-0cea-0010-8000-00aa00389b71 KSDATAFORMAT_SUBTYPE_IEC61937_MPEG3 |
MPEG-3 (Layer 3) |
0x05 |
0000004-0cea-0010-8000-00aa00389b71 KSDATAFORMAT_SUBTYPE_IEC61937_MPEG2 |
MPEG-2 (Multichannel) |
0x06 |
00000006-0cea-0010-8000-00aa00389b71 KSDATAFORMAT_SUBTYPE_IEC61937_AAC |
Erweiterte Audiocodierung* (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 |
Nicht verwendet. |
Reserviert |
Die GUIDs für Audioformate, die in Paketen mit hoher Bitrate übertragen werden, sind in der folgenden Tabelle aufgeführt.
CEA 861-Typ | SubFormat-GUID | Beschreibung |
---|---|---|
0x0b |
000000b-0cea-0010-8000-00aa00389b71 KSDATAFORMAT_SUBTYPE_IEC61937_DTS_HD |
DTS-HD (24-Bit, 95KHz) |
0x0c |
000000c-0cea-0010-8000-00aa00389b71 KSDATAFORMAT_SUBTYPE_IEC61937_DOLBY_MLP |
MAT(MLP)- Meridian Lossless Packing (Dolby Digital True HD - 24-Bit 196KHz/bis zu 18M Bps, 8 Kanäle) |
0x0e |
00000164-0000-0010-8000-00aa00389b71 KSDATAFORMAT_SUBTYPE_IEC61937_WMA_PRO |
Windows Media Audio (WMA) Pro |
Die GUIDs für komprimierte Audioformate, die von Drittanbieterlösungen implementiert werden können, sind in der folgenden Tabelle aufgeführt.
CEA 861-Typ | SubFormat-GUID | Beschreibung |
---|---|---|
0x08 |
0000008-0cea-0010-8000-00aa00389b71 KSDATAFORMAT_SUBTYPE_IEC61937_ATRAC |
Adaptive Transformation Acoustic Coding (ATRAC) |
0x09 |
00000009-0cea-0010-8000-00aa00389b71 KSDATAFORMAT_SUBTYPE_IEC61937_ONE_BIT_AUDIO |
One-Bit-Audio |
0x0d |
0000000d-0cea-0010-8000-00aa00389b71 KSDATAFORMAT_SUBTYPE_IEC61937_DST |
Direct Stream Transport (DST) |
Das folgende Codebeispiel zeigt, wie ein Audio-Miniporttreiber eine KSDATARANGE_AUDIO Struktur für die Verwendung mit einem HDMI-Senken definiert und initialisiert, der über einen voll funktionsfähigen Dolby Digital Plus-Decoder verfügt. Eine Spüle dieses Typs unterstützt Übertragungsraten von 44,1 und 48 KHz.
Bei einer Samplingrate von 48 KHz verwendet ein Audio-Miniporttreiber den folgenden Code, um eine KSDATARANGE_AUDIO Struktur zu definieren und zu initialisieren. Dieser Code zeigt die Datenbereiche an, die der Audio-Miniporttreiber verfügbar macht:
//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;
Bei einer Samplingrate von 44,1 KHz verwendet ein Audio-Miniporttreiber den folgenden Code, um eine KSDATARANGE_AUDIO Struktur zu definieren und zu initialisieren:
//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;