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
ACM_MPEG_LAYER1
Couche 1
ACM_MPEG_LAYER2
Couche 2
ACM_MPEG_LAYER3
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
ACM_MPEG_STEREO
Stéréo
ACM_MPEG_JOINTSTEREO
Stéréo commune
ACM_MPEG_DUALCHANNEL
Double canal
ACM_MPEG_SINGLECHANNEL
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 :

Valeur Signification
ACM_MPEG_PRIVATEBIT
Définissez le bit privé.
ACM_MPEG_COPYRIGHT
Définissez le bit de copyright.
ACM_MPEG_ORIGINALHOME
Définissez le bit d’origine/de base.
ACM_MPEG_PROTECTIONBIT
Définissez le bit de protection et insérez un code de protection contre les erreurs 16 bits dans chaque image.
ACM_MPEG_ID_MPEG1
Définissez le bit d’ID sur 1, en définissant le flux en tant que flux audio MPEG-1.
 

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 :
  • Couche 1 : 4 * (int)(12 * bitrate / sampling frequency)
  • Couches 2 et 3 : (int)(144 * bitrate / sampling frequency)
Si le débit est variable ou si la fréquence d’échantillonnage est de 44,1 kHz, la taille d’image audio n’est pas constante et nBlockAlign doit être de 1.
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

Voir aussi

DirectShow Structures

Types de médias MPEG-1