Structure MPEG1WAVEFORMAT (mmreg.h)
[La fonctionnalité associée à cette page, DirectShow, est une fonctionnalité héritée. Il a été remplacé par MediaPlayer, IMFMediaEngine et Audio/Video Capture dans Media Foundation. Ces fonctionnalités ont été optimisées pour Windows 10 et Windows 11. Microsoft recommande vivement au nouveau code d’utiliser MediaPlayer, IMFMediaEngine et La capture audio/vidéo dans Media Foundation au lieu de DirectShow, lorsque cela est possible. Microsoft suggère que le code existant qui utilise les API héritées soit réécrit pour utiliser les nouvelles API si possible.]
La MPEG1WAVEFORMAT
structure décrit le format des données audio MPEG-1.
Syntaxe
typedef struct mpeg1waveformat_tag {
WAVEFORMATEX wfx;
WORD fwHeadLayer;
DWORD dwHeadBitrate;
WORD fwHeadMode;
WORD fwHeadModeExt;
WORD wHeadEmphasis;
WORD fwHeadFlags;
DWORD dwPTSLow;
DWORD dwPTSHigh;
} MPEG1WAVEFORMAT;
Membres
wfx
Structure WAVEFORMATEX qui contient des informations sur le format audio. Consultez la section Notes.
fwHeadLayer
Spécifie la couche audio MPEG, telle que définie par les constantes suivantes :
Valeur | Signification |
---|---|
|
Couche 1 |
|
Couche 2 |
|
Couche 3 |
Certains flux MPEG peuvent contenir des images de plusieurs couches. Si c’est le cas, combinez les indicateurs avec une OR au niveau du bit.
dwHeadBitrate
Spécifie le débit, en bits par seconde. Cette valeur donne le débit binaire réel, et non le code d’en-tête de trame MPEG. Si le débit est variable ou s’il s’agit d’un débit non standard, définissez ce champ sur zéro.
fwHeadMode
Spécifie le mode de flux, tel que défini par les constantes suivantes :
Valeur | Signification |
---|---|
|
Stéréo |
|
Stéréo commune |
|
Double canal |
|
Canal unique |
Certains flux MPEG peuvent contenir des images avec différents modes. Si c’est le cas, combinez les indicateurs avec une OR au niveau du bit.
fwHeadModeExt
Spécifie l’extension de mode pour l’encodage stéréo conjoint :
Valeur | Code d’en-tête MPEG Frame | Couches 1 et 2 | Couche 3 |
---|---|---|---|
0x01 | '00' | Intensité stéréo dans les bandes 4 à 31 | Intensité stéréo désactivée; Stéréo milieu/côté (MS) désactivé |
0x02 | '01' | Stéréo d’intensité dans les bandes 8 à 31 | Intensité stéréo sur ; MS stéréo désactivée |
0x04 | '10' | Intensité stéréo dans les bandes 12 à 31 | Intensité stéréo désactivée; MS stéréo sur |
0x08 | '11' | Stéréo d’intensité dans les bandes 16 à 31 | Intensité stéréo désactivée; MS stéréo sur |
Ces valeurs peuvent être combinées avec une OR au niveau du bit. En général, les encodeurs basculent dynamiquement entre les modes d’extension en fonction des caractéristiques du signal. Par conséquent, pour l’encodage stéréo-conjoint normal, définissez ce champ sur 0x0F (or au niveau du bit de tous les indicateurs). Toutefois, vous pouvez utiliser ce champ pour limiter l’encodeur à un ensemble de types d’encodage autorisés.
Ce champ s’applique uniquement lorsque fwHeadMode inclut ACM_MPEG_JOINTSTEREO. Pour les autres modes, définissez ce champ sur zéro.
wHeadEmphasis
Spécifie la suppression de l’accentuation requise par le décodeur :
Valeur | En-tête MPEG Frame | Dé-accentuation du code obligatoire |
---|---|---|
1 | '00' | None |
2 | '01' | 50/15 ms accentuation |
3 | '10' | Réservé |
4 | '11' | CCITT J.17 |
fwHeadFlags
Spécifie une combinaison au niveau du bit de zéro ou plus des indicateurs suivants :
Un encodeur utilise ces indicateurs pour définir les bits correspondants dans les en-têtes de trame audio MPEG.
dwPTSLow
Spécifie les 32 bits les moins significatifs de l’horodatage de présentation (PTS) de la première image du flux audio.
dwPTSHigh
Spécifie le bit le plus significatif du PTS. Les champs dwPTSLow et dwPTSHigh peuvent être traités comme une seule valeur 64 bits.
Notes
Pour l’audio MPEG-1, la structure WAVEFORMATEX définie dans le membre wfx doit avoir les valeurs suivantes.
MEMBRE WAVEFORMATEX | Description |
---|---|
wFormatTag | Doit être WAVE_FORMAT_MPEG |
nChannels | 1 pour le mono, 2 pour la stéréo |
nSamplesPerSec | Spécifie la fréquence d’échantillonnage, si la fréquence d’échantillonnage est fixe. S’il s’agit d’une variable, définissez ce champ sur zéro. |
nAvgBytesPerSec | Spécifie le débit de données moyen. Si l’encodage à débit variable est utilisé sous la couche 3, la valeur peut ne pas être un débit MPEG-1 légal. |
nBlockAlign | Pour les flux audio avec une longueur d’image audio fixe, ce champ spécifie la longueur de l’image audio. Si la longueur de l’image est variable, définissez ce champ sur 1.Si la fréquence d’échantillonnage est de 32 kHz ou 48 kHz et que le débit est constant, la taille de l’image audio est constante. Dans ce cas, calculez nBlockAlign comme suit :
|
wBitsPerSample | Non utilisé ; défini sur zéro. |
cbSize | Spécifie la taille des données de format après la structure WAVEFORMATEX , en octets. Pour la structure MPEG1WAVEFORMAT standard, cette valeur est de 22 octets. |
Configuration requise
En-tête | mmreg.h |