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;