Freigeben über


MPEG1WAVEFORMAT-Struktur (mmreg.h)

[Das dieser Seite zugeordnete Feature DirectShow ist ein Legacyfeature. Es wurde durch MediaPlayer, IMFMediaEngine und Audio/Video Capture in Media Foundation ersetzt. Diese Features wurden für Windows 10 und Windows 11 optimiert. Microsoft empfiehlt dringend, dass neuer Code nach Möglichkeit MediaPlayer, IMFMediaEngine und Audio/Video Capture in Media Foundation anstelle von DirectShow verwendet. Microsoft schlägt vor, vorhandenen Code, der die Legacy-APIs verwendet, um nach Möglichkeit die neuen APIs zu verwenden.]

Die MPEG1WAVEFORMAT Struktur beschreibt das Format von MPEG-1-Audiodaten.

Syntax

typedef struct mpeg1waveformat_tag {
  WAVEFORMATEX wfx;
  WORD         fwHeadLayer;
  DWORD        dwHeadBitrate;
  WORD         fwHeadMode;
  WORD         fwHeadModeExt;
  WORD         wHeadEmphasis;
  WORD         fwHeadFlags;
  DWORD        dwPTSLow;
  DWORD        dwPTSHigh;
} MPEG1WAVEFORMAT;

Member

wfx

WAVEFORMATEX-Struktur , die Informationen zum Audioformat enthält. Siehe Hinweise.

fwHeadLayer

Gibt die MPEG-Audioebene an, die durch die folgenden Konstanten definiert wird:

Wert Bedeutung
ACM_MPEG_LAYER1
Ebene 1
ACM_MPEG_LAYER2
Layer 2-
ACM_MPEG_LAYER3
Ebene 3
 

Einige MPEG-Streams können Frames aus mehr als einer Ebene enthalten. Wenn ja, kombinieren Sie die Flags mit einem bitweisen OR.

dwHeadBitrate

Gibt die Bitrate in Bits pro Sekunde an. Dieser Wert gibt die tatsächliche Bitrate an, nicht den MPEG-Frameheadercode. Wenn die Bitrate variabel ist oder eine nicht standardmäßige Bitrate ist, legen Sie dieses Feld auf 0 fest.

fwHeadMode

Gibt den Streammodus an, der durch die folgenden Konstanten definiert wird:

Wert Bedeutung
ACM_MPEG_STEREO
Stereo
ACM_MPEG_JOINTSTEREO
Gemeinsame Stereoanlage
ACM_MPEG_DUALCHANNEL
Dual-Kanal
ACM_MPEG_SINGLECHANNEL
Einzelner Kanal
 

Einige MPEG-Streams können Frames mit unterschiedlichen Modi enthalten. Wenn ja, kombinieren Sie die Flags mit einem bitweisen OR.

fwHeadModeExt

Gibt die Moduserweiterung für die Joint-Stereo-Codierung an:

Wert MPEG-Frameheadercode Schicht 1 und 2 Ebene 3
0x01 '00' Intensität Stereo in Bändern 4 bis 31 Intensität Stereo aus; Mittel-/Seitliche Stereoanlage (MS) aus
0x02 '01' Intensität Stereo in Bändern 8 bis 31 Intensität Stereo ein; MS-Stereo aus
0x04 '10' Intensität Stereo in Bändern 12 bis 31 Intensität Stereo aus; MS-Stereo ein
0x08 '11' Intensität Stereo in Bändern 16 bis 31 Intensität Stereo aus; MS-Stereo ein
 

Diese Werte können mit einem bitweisen OR kombiniert werden. Im Allgemeinen wechseln Encoder dynamisch zwischen den Erweiterungsmodi entsprechend den Merkmalen des Signals. Legen Sie daher für die normale Joint-Stereo-Codierung dieses Feld auf 0x0F fest (das bitweise OR aller Flags). Sie können dieses Feld jedoch verwenden, um den Encoder auf einen Satz zulässiger Codierungstypen zu beschränken.

Dieses Feld gilt nur, wenn fwHeadMode ACM_MPEG_JOINTSTEREO enthält. Legen Sie für andere Modi dieses Feld auf Null fest.

wHeadEmphasis

Gibt die vom Decoder erforderliche Debetonierung an:

Wert MPEG-Frameheader Codeenthebung erforderlich
1 '00' Keine
2 '01' 50/15 ms Schwerpunkt
3 '10' Reserviert
4 '11' CCITT J.17

fwHeadFlags

Gibt eine bitweise Kombination aus null oder mehr der folgenden Flags an:

Wert Bedeutung
ACM_MPEG_PRIVATEBIT
Legen Sie das private Bit fest.
ACM_MPEG_COPYRIGHT
Legen Sie das Copyrightbit fest.
ACM_MPEG_ORIGINALHOME
Legen Sie das Ursprüngliche/Home-Bit fest.
ACM_MPEG_PROTECTIONBIT
Legen Sie das Schutzbit fest, und fügen Sie einen 16-Bit-Fehlerschutzcode in jeden Frame ein.
ACM_MPEG_ID_MPEG1
Legen Sie das ID-Bit auf 1 fest, und definieren Sie den Stream als MPEG-1-Audiostream.
 

Ein Encoder verwendet diese Flags, um die entsprechenden Bits in den MPEG-Audioframeheadern festzulegen.

dwPTSLow

Gibt die geringsten 32 Bits des Präsentationszeitstempels (PTS) des ersten Frames des Audiostreams an.

dwPTSHigh

Gibt das wichtigste Bit des PTS an. Die Felder dwPTSLow und dwPTSHigh können als einzelner 64-Bit-Wert behandelt werden.

Bemerkungen

Für MPEG-1-Audio muss die im wfx-Member definierte WAVEFORMATEX-Struktur die folgenden Werte aufweisen.

WAVEFORMATEX-Member Beschreibung
wFormatTag Muss WAVE_FORMAT_MPEG sein
nChannels 1 für Mono, 2 für Stereo
nSamplesPerSec Gibt die Samplinghäufigkeit an, wenn die Samplinghäufigkeit festgelegt ist. Wenn es sich um eine Variable handelt, legen Sie dieses Feld auf 0 (null) fest.
nAvgBytesPerSec Gibt die durchschnittliche Datenrate an. Wenn die Codierung mit variabler Bitrate unter Ebene 3 verwendet wird, ist der Wert möglicherweise keine zulässige MPEG-1-Bitrate.
nBlockAlign Für Audiostreams mit einer festen Audioframelänge gibt dieses Feld die Länge des Audioframes an. Wenn die Framelänge variabel ist, legen Sie dieses Feld auf 1 fest. Wenn die Samplinghäufigkeit 32 kHz oder 48 kHz beträgt und die Bitrate konstant ist, ist die Audioframegröße konstant. In diesem Fall berechnen Sie nBlockAlign wie folgt:
  • Ebene 1: 4 * (int)(12 * bitrate / sampling frequency)
  • Ebenen 2 und 3: (int)(144 * bitrate / sampling frequency)
Wenn die Bitrate variabel ist oder die Samplinghäufigkeit 44,1 kHz beträgt, ist die Audioframegröße nicht konstant, und nBlockAlign sollte 1 sein.
wBitsPerSample Nicht verwendet; auf 0 (null) festgelegt.
cbSize Gibt die Größe der Formatdaten nach der WAVEFORMATEX-Struktur in Bytes an. Für die MPEG1WAVEFORMAT-Standardstruktur beträgt dieser Wert 22 Bytes.

Requirements (Anforderungen)

   
Kopfzeile mmreg.h

Siehe auch

DirectShow-Strukturen

MPEG-1-Medientypen