Struttura MPEG1WAVEFORMAT (mmreg.h)
[La funzionalità associata a questa pagina, DirectShow, è una funzionalità legacy. È stata sostituita da MediaPlayer, IMFMediaEngine e Audio/Video Capture in Media Foundation. Queste funzionalità sono state ottimizzate per Windows 10 e Windows 11. Microsoft consiglia vivamente che il nuovo codice usi MediaPlayer, IMFMediaEngine e Audio/Video Capture in Media Foundation invece di DirectShow, quando possibile. Microsoft suggerisce che il codice esistente che usa le API legacy venga riscritto per usare le nuove API, se possibile.
La MPEG1WAVEFORMAT
struttura descrive il formato dei dati audio MPEG-1.
Sintassi
typedef struct mpeg1waveformat_tag {
WAVEFORMATEX wfx;
WORD fwHeadLayer;
DWORD dwHeadBitrate;
WORD fwHeadMode;
WORD fwHeadModeExt;
WORD wHeadEmphasis;
WORD fwHeadFlags;
DWORD dwPTSLow;
DWORD dwPTSHigh;
} MPEG1WAVEFORMAT;
Members
wfx
Struttura WAVEFORMATEX che contiene informazioni sul formato audio. Vedere la sezione Osservazioni.
fwHeadLayer
Specifica il livello audio MPEG, come definito dalle costanti seguenti:
Valore | Significato |
---|---|
|
Livello 1 |
|
Livello 2 |
|
Livello 3 |
Alcuni flussi MPEG possono contenere fotogrammi da più di un livello. In tal caso, combinare i flag con un OR bit per bit.
dwHeadBitrate
Specifica la velocità in bit, espressa in bit al secondo. Questo valore fornisce la velocità in bit effettiva, non il codice di intestazione del frame MPEG. Se la velocità in bit è variabile o è una velocità in bit non standard, impostare questo campo su zero.
fwHeadMode
Specifica la modalità di flusso, come definito dalle costanti seguenti:
Valore | Significato |
---|---|
|
Stereo |
|
Stereo comune |
|
Doppio canale |
|
Canale singolo |
Alcuni flussi MPEG possono contenere fotogrammi con modalità diverse. In tal caso, combinare i flag con un OR bit per bit.
fwHeadModeExt
Specifica l'estensione della modalità per la codifica joint-stereo:
Valore | Codice intestazione MPEG Frame | Livelli 1 e 2 | Livello 3 |
---|---|---|---|
0x01 | '00' | Intensità stereo nelle bande da 4 a 31 | Intensità stereo off; Stereo centrale/laterale (MS) disattivato |
0x02 | '01' | Intensità stereo nelle bande da 8 a 31 | Intensità stereo su; MS stereo disattivato |
0x04 | '10' | Intensità stereo nelle bande da 12 a 31 | Intensità stereo off; MS stereo on |
0x08 | '11' | Stereo di intensità nelle bande da 16 a 31 | Intensità stereo off; MS stereo on |
Questi valori possono essere combinati con un OR bit per bit. In generale, i codificatori passeranno dinamicamente tra le modalità di estensione in base alle caratteristiche del segnale. Pertanto, per la normale codifica joint-stereo, impostare questo campo su 0x0F (or bit per bit di tutti i flag). È tuttavia possibile usare questo campo per limitare il codificatore a un set di tipi di codifica consentiti.
Questo campo si applica solo quando fwHeadMode include ACM_MPEG_JOINTSTEREO. Per altre modalità, impostare questo campo su zero.
wHeadEmphasis
Specifica l'enfasi richiesta dal decodificatore:
Valore | Intestazione di frame MPEG | De-enfasi del codice obbligatoria |
---|---|---|
1 | '00' | nessuno |
2 | '01' | 50/15 ms enfasi |
3 | '10' | Riservato |
4 | '11' | CCITT J.17 |
fwHeadFlags
Specifica una combinazione bit per bit di zero o più dei flag seguenti:
Un codificatore userà questi flag per impostare i bit corrispondenti nelle intestazioni dei frame audio MPEG.
dwPTSLow
Specifica i 32 bit meno significativi del timestamp di presentazione (PTS) del primo fotogramma del flusso audio.
dwPTSHigh
Specifica il bit più significativo del pts. I campi dwPTSLow e dwPTSHigh possono essere considerati come un singolo valore a 64 bit.
Commenti
Per l'audio MPEG-1, la struttura WAVEFORMATEX definita nel membro wfx deve avere i valori seguenti.
Membro WAVEFORMATEX | Descrizione |
---|---|
wFormatTag | Deve essere WAVE_FORMAT_MPEG |
nChannels | 1 per mono, 2 per stereo |
nSamplesPerSec | Specifica la frequenza di campionamento, se la frequenza di campionamento è fissa. Se è variabile, impostare questo campo su zero. |
nAvgBytesPerSec | Specifica la velocità media dei dati. Se la codifica a velocità in bit variabile viene usata nel livello 3, il valore potrebbe non essere una velocità di bit MPEG-1 legale. |
nBlockAlign | Per i flussi audio con una lunghezza fissa del fotogramma audio, questo campo specifica la lunghezza del frame audio. Se la lunghezza del fotogramma è variabile, impostare questo campo su 1.Se la frequenza di campionamento è 32 kHz o 48 kHz e la frequenza di bit è costante, la dimensione del fotogramma audio è costante. In tal caso, calcolare nBlockAlign come segue:
|
wBitsPerSample | Non utilizzato; impostato su zero. |
cbSize | Specifica le dimensioni dei dati di formato dopo la struttura WAVEFORMATEX , in byte. Per la struttura MPEG1WAVEFORMAT standard, questo valore è di 22 byte. |
Requisiti
Intestazione | mmreg.h |