MPEG1WAVEFORMAT 構造体 (mmreg.h)
[このページに関連付けられている機能 DirectShow は、従来の機能です。 MediaPlayer、IMFMediaEngine、Media Foundation のオーディオ/ビデオ キャプチャに置き換わりました。 これらの機能は、Windows 10とWindows 11用に最適化されています。 新しいコードでは、可能であれば、DirectShow ではなく Media Foundation で MediaPlayer、IMFMediaEngine、Audio/Video Capture を使用することを強くお勧めします。 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
オーディオ形式に関する情報を含む WAVEFORMATEX 構造体。 「解説」を参照してください。
fwHeadLayer
次の定数で定義されている MPEG オーディオレイヤーを指定します。
値 | 説明 |
---|---|
|
レイヤー 1 |
|
レイヤー 2 |
|
レイヤー 3 |
一部の MPEG ストリームには、複数のレイヤーからのフレームが含まれている場合があります。 その場合は、フラグをビットごとの OR と組み合わせます。
dwHeadBitrate
ビットレートを 1 秒あたりのビット数で指定します。 この値は、MPEG フレーム ヘッダー コードではなく、実際のビットレートを示します。 ビットレートが可変の場合、または標準以外のビットレートの場合は、このフィールドを 0 に設定します。
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が含まれている場合にのみ適用されます。 その他のモードの場合は、このフィールドを 0 に設定します。
wHeadEmphasis
デコーダーで必要な強調解除を指定します。
値 | MPEG フレーム ヘッダー | コードの強調解除が必要 |
---|---|---|
1 | '00' | なし |
2 | '01' | 50/15 ms 強調 |
3 | '10' | 予約済み |
4 | '11' | CCITT J.17 |
fwHeadFlags
次のフラグの 0 個以上のビットごとの組み合わせを指定します。
エンコーダーは、これらのフラグを使用して、MPEG オーディオ フレーム ヘッダーの対応するビットを設定します。
dwPTSLow
オーディオ ストリームの最初のフレームのプレゼンテーション タイム スタンプ (PTS) の下位 32 ビットを指定します。
dwPTSHigh
PTS の最上位ビットを指定します。 dwPTSLow フィールドと dwPTSHigh フィールドは、1 つの 64 ビット値として扱うことができます。
解説
MPEG-1 オーディオの場合、wfx メンバーで定義されている WAVEFORMATEX 構造体には、次の値が必要です。
WAVEFORMATEX メンバー | Description |
---|---|
wFormatTag | WAVE_FORMAT_MPEGする必要があります |
nChannels | モノラルの場合は 1、ステレオの場合は 2 |
nSamplesPerSec | サンプリング周波数が固定されている場合にサンプリング周波数を指定します。 変数の場合は、このフィールドを 0 に設定します。 |
nAvgBytesPerSec | 平均データ 速度を指定します。 レイヤー 3 で可変ビットレート エンコードが使用されている場合、値が有効な MPEG-1 ビット レートではない可能性があります。 |
nBlockAlign | オーディオ フレームの長さが固定されているオーディオ ストリームの場合、このフィールドはオーディオ フレームの長さを指定します。 フレームの長さが可変の場合は、このフィールドを 1 に設定します。サンプリング周波数が 32 kHz または 48 kHz で、ビット レートが一定の場合、オーディオ フレーム サイズは一定です。 その場合は、次のように nBlockAlign を 計算します。
|
wBitsPerSample | 使用されません。0 に設定します。 |
cbSize | WAVEFORMATEX 構造体の後の書式データのサイズをバイト単位で指定します。 標準の MPEG1WAVEFORMAT 構造体の場合、この値は 22 バイトです。 |
要件
Header | mmreg.h |