Dolby Audio Decoder
Der Dolby-Audiodecoder ist eine Media Foundation Transformation (MFT), die die folgenden Streamtypen decodiert:
- Dolby Digital, auch als Dolby AC-3 bezeichnet
- Dolby Digital Plus, auch als Enhanced AC-3 (E-AC-3) bezeichnet
Wichtig
Bei Versionen von Windows vor Windows 8 ist die Microsoft-Implementierung der Dolby Digital-Technologie gemäß den Bedingungen des Dolby Digital-Lizenzierungsprogramms auf die Verwendung durch Microsoft-Anwendungen beschränkt.
Weitere Informationen zu diesen Formaten finden Sie im ATSC-Dokument Digital Audio Compression Standard (AC-3, E-AC-3) Revision B.
Der Decoder kann auch einen Dolby Digital Plus-Stream in das Dolby Digital-Format für DIE AC-3 S/PIDF-Ausgabe konvertieren oder einen Dolby Digital Plus-Stream für die digitale AUSGABE VON DOLBY formatieren.
Klassenbezeichner
Der Klassenbezeichner (CLSID) des Dolby-Audiodecoders ist CLSID _ CMSDDPlusDecMFT, definiert in der Headerdatei wmcodecdsp.h.
Eingabetypen
Der Dolby-Audiodecoder unterstützt die folgenden Eingabeuntertypen.
| Subtype | BESCHREIBUNG | Header |
|---|---|---|
| MEDIASUBTYPE _ DOLBY _ AC3 | Dolby Digital-Audio. | mfapi.h |
| MEDIASUBTYPE _ DVM | Dolby Digital-Audio; weitere Informationen finden Sie unter Audiountertypen. Dieser Untertyp kann synonym mit MEDIASUBTYPE _ DOLBY _ AC3 verwendet werden. |
wmcodecdsp.h |
| MFAudioFormat _ Dolby _ Digital _ Plus | Dolby Digital Plus-Audio. | mfapi.h |
In der folgenden Tabelle sind die attribute requires und optional für den Eingabemedientyp aufgeführt.
| attribute | BESCHREIBUNG | Bemerkungen |
|---|---|---|
| MF_MT_MAJOR_TYPE | Haupttyp. | Erforderlich. Muss MFMediaType_Audio. |
| MF_MT_SUBTYPE | Audiountertyp. | Erforderlich. Weitere Informationen finden Sie in der vorherigen Tabelle. |
| MF_MT_AUDIO_SAMPLES_PER_SECOND | Stichprobenrate in Stichproben pro Sekunde. | Optional. Gültige Werte sind: 48000, 44100, 32000, 24000, 22050 und 16000. Wenn dieses Attribut nicht festgelegt ist, ist der Standardwert 48000. [!Note] |
| MF_MT_AUDIO_NUM_CHANNELS | Anzahl der Kanäle, einschließlich des Kanals mit niedriger Frequenz (Low Frequency, LFE), sofern vorhanden. | Optional. Gültige Werte liegen im Bereich von 1 (Mono) bis 8 (7,1 Kanalkonfiguration). Wenn dieses Attribut nicht festgelegt ist, ist der Standardwert 2 (Stereo). |
| MF_MT_AUDIO_CHANNEL_MASK | Gibt die Zuweisung von Audiokanälen zu Sprecherpositionen an. | Optional. Wenn angegeben, muss der Wert mit der Anzahl der Audiokanäle konsistent sein. Wenn das Attribut nicht festgelegt ist, verwendet der Decoder basierend auf der Anzahl der Kanäle eine Standardkanalmaske. |
In der folgenden Tabelle sind die unterstützten Dolby-Kanalkonfigurationen aufgeführt.
| Kanalkonfiguration | Anzahl von Kanälen | Kanalmasken | ||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 1/0 (mono) | 1 | 0x4 (SPEAKER_FRONT_CENTER) | ||||||||||
| 2/0 (Stereo) oder 1+1 (Dual Mono) | 2 | 0x3 (SPEAKER_FRONT_LEFT | SPEAKER_FRONT_RIGHT) | |||||||||
| 3/0 | 3 | 0x7 (SPEAKER_FRONT_LEFT | SPEAKER_FRONT_RIGHT | SPEAKER_FRONT_CENTER) | ||||||||
| 2/1 | 3 | 0x103 (SPEAKER_FRONT_LEFT | SPEAKER_FRONT_RIGHT | SPEAKER_BACK_CENTER) | ||||||||
| 3/1 | 4 | 0x107 (SPEAKER_FRONT_LEFT | SPEAKER_FRONT_RIGHT | SPEAKER_FRONT_CENTER | SPEAKER_BACK_CENTER) | |||||||
| 2/2 | 4 | 0x33 (SPEAKER_FRONT_LEFT | SPEAKER_FRONT_RIGHT | SPEAKER_BACK_LEFT | SPEAKER_BACK_RIGHT) oder 0x603 (SPEAKER_FRONT_LEFT |
SPEAKER_FRONT_RIGHT | SPEAKER_SIDE_LEFT | SPEAKER_SIDE_RIGHT) |
||||
| 3/2 | 5 | 0x37 (SPEAKER_FRONT_LEFT | SPEAKER_FRONT_RIGHT | SPEAKER_FRONT_CENTER | SPEAKER_BACK_LEFT | SPEAKER_BACK_RIGHT) oder 0x607 (SPEAKER_FRONT_LEFT |
SPEAKER_FRONT_RIGHT | SPEAKER_FRONT_CENTER | SPEAKER_SIDE_LEFT | SPEAKER_SIDE_RIGHT) |
||
| 3/2 + LFE | 6 | 0x3F (SPEAKER_FRONT_LEFT | SPEAKER_FRONT_RIGHT | SPEAKER_FRONT_CENTER | SPEAKER_LOW_FREQUENCY | SPEAKER_BACK_LEFT | SPEAKER_BACK_RIGHT) oder 0x60F (SPEAKER_FRONT_LEFT |
SPEAKER_FRONT_RIGHT | SPEAKER_FRONT_CENTER | SPEAKER_LOW_FREQUENCY | SPEAKER_SIDE_LEFT | SPEAKER_SIDE_RIGHT) |
2.03.2 + LFE[!Note] |
8 | 0x63F (SPEAKER_FRONT_LEFT | SPEAKER_FRONT_RIGHT | SPEAKER_FRONT_CENTER | SPEAKER_LOW_FREQUENCY | SPEAKER_BACK_LEFT | SPEAKER_BACK_RIGHT | SPEAKER_SIDE_LEFT | SPEAKER_SIDE_RIGHT) |
Darüber hinaus können kanalkonfigurationen 1/0, 2/0, 3/0, 2/1, 3/1 und 2/2 auch mit einem LFE-Kanal angezeigt werden.
Ausgabetypen
Der Dolby-Audiodecoder unterstützt die folgenden Ausgabeuntertypen.
| Subtype | BESCHREIBUNG | Header |
|---|---|---|
| MFAudioFormat _ Dolby _ _ AC3FORMAT | Dolby AC-3-Audio, das für die digitale Ausgabe von S/PDIF formatiert ist. | mfapi.h |
| _KSDATAFORMAT-UNTERTYP _ IEC61937 _ DOLBY DIGITAL _ _ PLUS | Dolby Digital Plus-Audio, formatiert für die digitale Ausgabe von DOLBY. | ksmedia.h |
| MFAudioFormat _ Float | IEEE 32-Bit-Gleitkomma-PCM-Audio Windows 10: Stereo, 5.1, 7.1 Frühere Versionen: Stereo, 5.1 |
mfapi.h |
| MFAudioFormat _ PCM | 16-Bit-PCM-Audio Windows 10: Stereo, 5.1, 7.1 Frühere Versionen: Stereo, 5.1 |
mfapi.h |
In der folgenden Tabelle sind die erforderlichen und optionalen Attribute für den Ausgabemedientyp aufgeführt.
| attribute | BESCHREIBUNG | Bemerkungen |
|---|---|---|
| MF_MT_MAJOR_TYPE | Haupttyp. | Erforderlich. Muss MFMediaType_Audio. |
| MF_MT_SUBTYPE | Audiountertyp. | Erforderlich. Weitere Informationen finden Sie in der vorherigen Tabelle. |
| MF_MT_AUDIO_SAMPLES_PER_SECOND | Stichprobenrate in Stichproben pro Sekunde. | Erforderlich. Gültige Werte sind: 48000, 44100, 32000, 24000, 22050 und 16000. Die Ausgabestichprobenrate muss mit der Eingabestichprobenrate identisch sein. Der Decoder kann die Samplingrate des Streams nicht ändern. |
| MF_MT_AUDIO_NUM_CHANNELS | Anzahl der Kanäle, einschließlich des Kanals mit niedriger Frequenz (Low Frequency, LFE), sofern vorhanden. | Erforderlich für die PCM-Ausgabe. Für die digitale Ausgabe nicht erforderlich. Wenn der Eingabetyp mono, stereo oder dual-mono (alle ohne LFE-Kanal) ist, ist der einzige gültige Wert 2 für die Stereoausgabe. Andernfalls kann der Wert wie im Folgenden angegeben sein:
|
| MF_MT_AUDIO_CHANNEL_MASK | Gibt die Zuweisung von Audiokanälen zu Sprecherpositionen an. | Erforderlich für die PCM-Ausgabe, wenn die Anzahl der Kanäle größer als 2 ist. Der Wert muss wie im folgenden Wert sein:
|
| MF_MT_AUDIO_BITS_PER_SAMPLE | Anzahl der Bits pro Audiobeispiel. | Erforderlich für die PCM-Ausgabe. Der Wert muss 32 für MFAudioFormat_Floatund 16 fürMFAudioFormat_PCM. Für die digitale Ausgabe nicht erforderlich. |
| MF_MT_AUDIO_VALID_BITS_PER_SAMPLE | Anzahl der gültigen Bits von Audiodaten in jedem Audiobeispiel. | Optional für PCM-Ausgabe. Wenn festgelegt, muss der Wert mit dem WertMF_MT_AUDIO_BITS_PER_SAMPLE. Für die Digitalen Ausgabeuntertypen nicht erforderlich. |
| MF_MT_AUDIO_BLOCK_ALIGNMENT | Blockausrichtung in Bytes. | Optional für PCM-Ausgabe. Für die digitale Ausgabe nicht erforderlich. |
| MF_MT_AUDIO_AVG_BYTES_PER_SECOND | Durchschnittliche Anzahl von Bytes pro Sekunde. | Optional für PCM-Ausgabe. Für die digitale Ausgabe nicht erforderlich. |
Transformieren von Attributen
Der Dolby-Audiodecoder implementiert die DECODERTransform::GetAttributes-Methode. Die Anwendung kann diese Methode verwenden, um die folgenden Attribute abzurufen oder festzulegen.
| attribute | BESCHREIBUNG |
|---|---|
| CODECAPI _ AVDecAudioDualMono | Gibt an, ob ein 2-Kanal-Dolby-Audiostream als Stereo oder Dual-Mono codiert ist. Bevor der erste Dolby-Frame decodiert wird, lautet der Wert eAVDecAudioDualMono _ UnSpecified. Nachdem die Decodierung begonnen hat, spiegelt der Wert den neuesten Dolby-Frame wider. Schreibgeschützt. |
| CODECAPI _ AVDecAudioDualMonoReproMode | Gibt an, wie der Decoder Dual-Mono-Audio reproduziert. Der Standardwert ist eAVDecAudioDualMonoReproMode _ LEFT _ MONO. Die Anwendung kann diese Eigenschaft jederzeit festlegen. Lese-/Schreibzugriff. |
| CODECAPI _ AVDecCommonMeanBitRate | Gibt für Dolby Digital-Streams (AC-3) die Bitrate des Eingabedatenstroms in Bits pro Sekunde an. Bei Dolby Digital Plus (E-AC3) ist der Wert immer 0 (null). Schreibgeschützt. |
| CODECAPI _ AVDecDDDynamicRangeScaleHigh | Der obere Schnitt, wenn der Decoder die Steuerung des dynamischen Bereichs ausführt. Lese-/Schreibzugriff. |
| CODECAPI _ AVDecDDDynamicRangeScaleLow | Die Verstärkung auf niedriger Ebene, wenn der Decoder die Steuerung des dynamischen Bereichs ausführt. Lese-/Schreibzugriff. |
| CODECAPI _ AVDecDDOperationalMode | Der Komprimierungssteuerungsmodus. Lese-/Schreibzugriff. |
| CODECAPI _ AVDecDDStereoDownMixMode | Der Typ von Stereo-Downmix. Diese Eigenschaft gilt, wenn die Eingabe ein Mehrkanalstream und die Ausgabe ein Stereostream ist. Lese-/Schreibzugriff. |
| DYNAMISCHE _ _ _ FORMATÄNDERUNG DURCH MFT-UNTERSTÜTZUNG _ | Dieses Attribut gibt FALSE zurück, was angibt, dass der Decoder entladen werden muss, bevor ein neuer Eingabetyp festgelegt wird. Lese-/Schreibzugriff. |
Bemerkungen
Der Decoder akzeptiert nur unformatierte Dolby-Streams, wie von A/52B definiert. Nutzlasten wie packetisierte elementare Streams (PES) werden nicht unterstützt. Bei Dolby Digital Plus decodiert der Decoder bis zu 5.1 Kanäle. Auf Windows 10 werden 7.1-Kanalstreams ohne Downmix decodiert. Wenn es sich bei früheren Betriebssystemversionen um 7.1-Kanäle handelt, wird nur der Downmix des 5.1-Kanals decodiert. Wenn der Stream Dolby Digital Plus mit mehr als einem unabhängigen Unterstream ist, wird nur der unabhängige Substream 0 decodiert. Der Decoder überspringt andere unabhängige Unterstreams. Darüber hinaus überspringt der Decoder alle abhängigen Unterstreams. Der Decoder unterstützt die Entschlüsselung und Decodierung von Datenströmen, die durch DRM-Technologie (Digital Rights Management) geschützt werden.
Wenn der Eingabemedientyp über eine andere Kanalkonfiguration als Mono, Stereo oder Dual-Mono (alle ohne LFE-Kanal) verfügt, bietet der Decoder zwei Optionen für die Ausgabekanalkonfigurationen:
- 8-Kanal-Ausgabe (7.1-Kanalkonfiguration)
- 6-Kanal-Ausgabe (5.1-Kanalkonfiguration)
- Stereo-Downmix
Wenn Stereo-Downmix ausgewählt ist, kann der Typ von Downmix für den MFT mithilfe der CODECAPI _ AVDecDDStereoDownMixMode-Eigenschaft festgelegt werden.
Wenn der Ausgabetyp MFAudioFormat _ Dolby _ AC3 _ SOLLIF lautet, enthält jeder Ausgabepuffer 6.144 Bytes. Der Puffer beginnt mit einem 8-Byte-S/PDIF-Header, gefolgt von einem komprimierten AC-3-Frame, gefolgt von einer Auffüllung von null auf 6.144 Bytes.
Wenn der Ausgabetyp KSDATAFORMAT _ SUBTYPE _ IEC61937 _ DOLBY DIGITAL _ _ PLUS ist, enthält jeder Ausgabepuffer 24.576 Bytes. Der Puffer beginnt mit einem 8-Byte-S/PDIF-Header, gefolgt von 1–6 komprimierten Dolby Digital Plus-Frames, die 1.536 PCM-Stichproben entsprechen, gefolgt von einer Auffüllung von 24.576 Bytes. Für die AUSGABE von PACKS wird nur der unabhängige Unterstream 0 gepackt.
Der Decoder-MFT wird mit dem Flag _ MFT-ENUM-FLAG _ _ FIELDOFUSE registriert, das angibt, dass der MFT vor der Verwendung von der Anwendung entsperrt werden muss. Weitere Informationen finden Sie unter Field of Use Restrictions.
Requirements (Anforderungen)
| Anforderung | Wert |
|---|---|
| Unterstützte Mindestversion (Client) |
[Windows 8 |Desktop-Apps UWP-Apps] |
| Unterstützte Mindestversion (Server) |
Nicht unterstützt |
| DLL |
|