Compartilhar via


Estrutura MPEG1WAVEFORMAT (mmreg.h)

[O recurso associado a esta página, DirectShow, é um recurso herdado. Ele foi substituído por MediaPlayer, IMFMediaEngine e Captura de Áudio/Vídeo na Media Foundation. Esses recursos foram otimizados para Windows 10 e Windows 11. A Microsoft recomenda fortemente que o novo código use MediaPlayer, IMFMediaEngine e Captura de Áudio/Vídeo no Media Foundation em vez de DirectShow, quando possível. A Microsoft sugere que o código existente que usa as APIs herdadas seja reescrito para usar as novas APIs, se possível.]

A MPEG1WAVEFORMAT estrutura descreve o formato dos dados de áudio MPEG-1.

Sintaxe

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

Membros

wfx

Estrutura WAVEFORMATEX que contém informações sobre o formato de áudio. Consulte Observações.

fwHeadLayer

Especifica a camada de áudio MPEG, conforme definido pelas seguintes constantes:

Valor Significado
ACM_MPEG_LAYER1
Camada 1
ACM_MPEG_LAYER2
Camada 2
ACM_MPEG_LAYER3
Camada 3
 

Alguns fluxos MPEG podem conter quadros de mais de uma camada. Nesse caso, combine os sinalizadores com um OR bit a bit.

dwHeadBitrate

Especifica a taxa de bits, em bits por segundo. Esse valor fornece a taxa de bits real, não o código de cabeçalho de quadro MPEG. Se a taxa de bits for variável ou for uma taxa de bits não padrão, defina esse campo como zero.

fwHeadMode

Especifica o modo de fluxo, conforme definido pelas seguintes constantes:

Valor Significado
ACM_MPEG_STEREO
Estéreo
ACM_MPEG_JOINTSTEREO
Estéreo conjunto
ACM_MPEG_DUALCHANNEL
Canal duplo
ACM_MPEG_SINGLECHANNEL
Canal único
 

Alguns fluxos MPEG podem conter quadros com modos diferentes. Nesse caso, combine os sinalizadores com um OR bit a bit.

fwHeadModeExt

Especifica a extensão de modo para codificação estéreo conjunta:

Valor Código de cabeçalho de quadro MPEG Camadas 1 e 2 Camada 3
0x01 '00' Intensidade estéreo nas bandas 4 a 31 Intensidade estéreo desativado; Estéreo médio/lateral (MS) desativado
0x02 '01' Intensidade estéreo nas bandas 8 a 31 Intensidade estéreo ativada; Estéreo MS desativado
0x04 '10' Intensidade estéreo nas bandas 12 a 31 Intensidade estéreo desativado; Estéreo MS ativado
0x08 '11' Intensidade estéreo nas bandas 16 a 31 Intensidade estéreo desativado; Estéreo MS ativado
 

Esses valores podem ser combinados com um OR bit a bit. Em geral, os codificadores alternarão dinamicamente entre os modos de extensão de acordo com as características do sinal. Portanto, para codificação estéreo articular normal, defina esse campo como 0x0F (o OR bit a bit de todos os sinalizadores). No entanto, você pode usar esse campo para limitar o codificador a um conjunto de tipos de codificação permitidos.

Esse campo só se aplica quando fwHeadMode inclui ACM_MPEG_JOINTSTEREO. Para outros modos, defina esse campo como zero.

wHeadEmphasis

Especifica a desescente exigida pelo decodificador:

Valor Cabeçalho de quadro MPEG Desescente de código Obrigatório
1 '00' Nenhum
2 '01' Ênfase de 50/15 ms
3 '10' Reservado
4 '11' CCITT J.17

fwHeadFlags

Especifica uma combinação bit a bit de zero ou mais dos seguintes sinalizadores:

Valor Significado
ACM_MPEG_PRIVATEBIT
Defina o bit privado.
ACM_MPEG_COPYRIGHT
Defina o bit de direitos autorais.
ACM_MPEG_ORIGINALHOME
Defina o bit original/inicial.
ACM_MPEG_PROTECTIONBIT
Defina o bit de proteção e insira um código de proteção contra erros de 16 bits em cada quadro.
ACM_MPEG_ID_MPEG1
Defina o bit de ID como 1, definindo o fluxo como um fluxo de áudio MPEG-1.
 

Um codificador usará esses sinalizadores para definir os bits correspondentes nos cabeçalhos do quadro de áudio MPEG.

dwPTSLow

Especifica os 32 bits menos significativos do PTS (carimbo de data/hora) da apresentação do primeiro quadro do fluxo de áudio.

dwPTSHigh

Especifica o bit mais significativo do PTS. Os campos dwPTSLow e dwPTSHigh podem ser tratados como um único valor de 64 bits.

Comentários

Para áudio MPEG-1, a estrutura WAVEFORMATEX definida no membro wfx deve ter os valores a seguir.

Membro WAVEFORMATEX Descrição
Wformattag Deve ser WAVE_FORMAT_MPEG
nChannels 1 para mono, 2 para estéreo
nSamplesPerSec Especifica a frequência de amostragem, se a frequência de amostragem for fixa. Se for variável, defina esse campo como zero.
nAvgBytesPerSec Especifica a taxa média de dados. Se a codificação de taxa de bits variável for usada na camada 3, o valor poderá não ser uma taxa de bits MPEG-1 legal.
nBlockAlign Para fluxos de áudio com um comprimento de quadro de áudio fixo, esse campo especifica o comprimento do quadro de áudio. Se o comprimento do quadro for variável, defina esse campo como 1.Se a frequência de amostragem for de 32 kHz ou 48 kHz e a taxa de bits for constante, o tamanho do quadro de áudio será constante. Nesse caso, calcule nBlockAlign da seguinte maneira:
  • Camada 1: 4 * (int)(12 * bitrate / sampling frequency)
  • Camadas 2 e 3: (int)(144 * bitrate / sampling frequency)
Se a taxa de bits for variável ou a frequência de amostragem for de 44,1 kHz, o tamanho do quadro de áudio não será constante e nBlockAlign deverá ser 1.
wBitsPerSample Não usado; definido como zero.
cbSize Especifica o tamanho dos dados de formato após a estrutura WAVEFORMATEX , em bytes. Para a estrutura MPEG1WAVEFORMAT padrão, esse valor é de 22 bytes.

Requisitos

   
Cabeçalho mmreg.h

Confira também

Estruturas do DirectShow

Tipos de Mídia MPEG-1