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 |
---|---|
|
Camada 1 |
|
Camada 2 |
|
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 |
---|---|
|
Estéreo |
|
Estéreo conjunto |
|
Canal duplo |
|
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:
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:
|
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 |