MPEG1WAVEFORMAT 結構 (mmreg.h)
[與此頁面 相關的功能 DirectShow是舊版功能。 它已被 MediaPlayer、 IMFMediaEngine和 Media Foundation 中的音訊/視訊擷取取代。 這些功能已針對Windows 10和Windows 11進行優化。 Microsoft 強烈建議新程式碼盡可能使用 MediaPlayer、 IMFMediaEngine 和 音訊/視訊擷取 ,而不是 DirectShow。 Microsoft 建議盡可能重寫使用舊版 API 的現有程式碼,以使用新的 API。]
結構 MPEG1WAVEFORMAT
描述 MPEG-1 音訊資料的格式。
語法
typedef struct mpeg1waveformat_tag {
WAVEFORMATEX wfx;
WORD fwHeadLayer;
DWORD dwHeadBitrate;
WORD fwHeadMode;
WORD fwHeadModeExt;
WORD wHeadEmphasis;
WORD fwHeadFlags;
DWORD dwPTSLow;
DWORD dwPTSHigh;
} MPEG1WAVEFORMAT;
成員
wfx
包含音訊格式相關資訊的顯示方式X 結構。 請參閱<備註>。
fwHeadLayer
指定 MPEG 音訊層,如下列常數所定義:
值 | 意義 |
---|---|
|
第 1 層 |
|
第 2 層 |
|
第 3 層 |
某些 MPEG 資料流程可能包含來自多個圖層的畫面。 如果是,請將旗標與位 OR結合。
dwHeadBitrate
指定每秒位的位元速率。 這個值會提供實際的位元速率,而不是 MPEG 框架標頭程式碼。 如果位元速率為變數,或為非標準位元速率,請將此欄位設定為零。
fwHeadMode
指定資料流程模式,如下列常數所定義:
值 | 意義 |
---|---|
|
立體聲 |
|
聯合身歷聲 |
|
雙重通道 |
|
單一通道 |
某些 MPEG 資料流程可能包含具有不同模式的畫面。 如果是,請將旗標與位 OR 結合。
fwHeadModeExt
指定聯合身歷聲編碼的模式延伸:
值 | MPEG 框架標頭程式碼 | 第 1 層和第 2 層 | 第 3 層 |
---|---|---|---|
0x01 | '00' | 帶 4 到 31 的濃度身歷聲 | 濃度身歷聲關閉;中間/側 (MS) 身歷聲 |
0x02 | '01' | 帶 8 到 31 的濃度身歷聲 | 強度身歷聲開啟;MS 身歷聲關閉 |
0x04 | '10' | 帶狀 12 到 31 的濃度身歷聲 | 濃度身歷聲關閉;MS 身歷聲開啟 |
0x08 | '11' | 帶 16 到 31 的濃度身歷聲 | 濃度身歷聲關閉;MS 身歷聲開啟 |
這些值可以與位 OR結合。 一般而言,編碼器會根據訊號的特性,動態切換擴充模式。 因此,針對一般聯合身歷聲編碼,請將此欄位設定為0x0F (所有旗標的位 OR) 。 不過,您可以使用此欄位將編碼器限制為一組允許的編碼類型。
只有當 fwHeadMode 包含ACM_MPEG_JOINTSTEREO時,才會套用此欄位。 若為其他模式,請將此欄位設定為零。
wHeadEmphasis
指定解碼器所需的反強調:
值 | MPEG 框架標頭 | 需要程式碼取消強調 |
---|---|---|
1 | '00' | 無 |
2 | '01' | 強調 50/15 毫秒 |
3 | '10' | 保留 |
4 | '11' | CCITT J.17 |
fwHeadFlags
指定下列旗標之零或多個的位元組合:
值 | 意義 |
---|---|
|
設定私用位。 |
|
設定著作權位。 |
|
設定原始/主位。 |
|
設定保護位,並在每個畫面中插入 16 位錯誤保護碼。 |
|
將識別碼位設定為 1,將資料流程定義為 MPEG-1 音訊資料流程。 |
編碼器會使用這些旗標來設定 MPEG 音訊框架標頭中的對應位。
dwPTSLow
指定音訊資料流程第一個畫面格 (PTS) 簡報時間戳記的最小 32 位。
dwPTSHigh
指定 PTS 最重要的位。 dwPTSLow和dwPTSHigh欄位可以視為單一 64 位值。
備註
若為 MPEG-1 音訊,wfx成員中定義的顯示單位X結構必須具有下列值。
其成員 | Description |
---|---|
wFormatTag | 必須是WAVE_FORMAT_MPEG |
nChannels | 1 用於單聲道,2 用於身歷聲 |
nSamplesPerSec | 如果取樣頻率是固定的,則指定取樣頻率。 如果是變數,請將此欄位設定為零。 |
nAvgBytesPerSec | 指定平均資料速率。 如果在第 3 層下使用變數位元速率編碼,該值可能不是合法的 MPEG-1 位元速率。 |
nBlockAlign | 對於具有固定音訊畫面長度的音訊資料流程,此欄位會指定音訊框架的長度。 如果畫面長度可變,請將此欄位設定為 1。如果取樣頻率為 32 kHz 或 48 kHz,且位元速率為常數,音訊畫面大小為常數。 在此情況下,計算 nBlockAlign ,如下所示:
|
wBitsPerSample | 未使用;設定為零。 |
cbSize | 以位元組為單位,指定將 FORMAT 資料格式化資料的大小設定為 2012 年 2 月 3 日。 針對標準 MPEG1WAVEFORMAT 結構,此值為 22 個位元組。 |
規格需求
標頭 | mmreg.h |