Microsoft DirectX 8.0 |
インターレース、コピー保護、およびピクセルのアスペクト比の情報を含む、ビデオ イメージのビットマップおよび色情報を記述する。
構文
typedef struct tagVIDEOINFOHEADER2 { RECT rcSource; RECT rcTarget; DWORD dwBitRate; DWORD dwBitErrorRate; REFERENCE_TIME AvgTimePerFrame; DWORD dwInterlaceFlags; DWORD dwCopyProtectFlags; DWORD dwPictAspectRatioX; DWORD dwPictAspectRatioY; DWORD dwReserved1; DWORD dwReserved2; BITMAPINFOHEADER bmiHeader; } VIDEOINFOHEADER2;
メンバ
- rcSource
- 転送先バッファに送るソース ストリームの使用部分を指定する RECT 構造体。レンダラでは、このフィールドを使用して、デコーダに伸縮またはクリッピングを指示できる。詳細については、「ビデオ レンダラにおける転送元矩形と転送先矩形」を参照すること。
- rcTarget
- 転送先バッファのどの部分を使用するかを指定する RECT 構造体。詳細については、「ビデオ レンダラにおける転送元矩形と転送先矩形」を参照すること。
- dwBitRate
- ビデオ ストリームのおおよそのデータ レート (ビット/秒)。
- dwBitErrorRate
- ビデオ ストリームのデータ エラー レート (ビット/秒)。
- AvgTimePerFrame
- ビデオ フレームの平均表示時間 (100 ナノ秒単位)。
- dwInterlaceFlags
- 以下のフラグのビットごとの組み合わせ (0 個でもよい)。このフラグの詳細については、このページの最後の表を参照すること。
未定義のフラグは 0 に設定すること。0 以外の場合、接続は拒否される。
AMINTERLACE_IsInterlaced ストリームがインターレース方式である。このフラグがオフの場合、ほかのビットは意味がない。 AMINTERLACE_1FieldPerSample メディア サンプルあたり 1 フィールド。このフラグがオフの場合は、メディア サンプルごとに 2 フィールドとなる。 AMINTERLACE_Field1First フィールド 1 が先。このフラグがオフの場合は、フィールド 2 が先になる (先頭フィールドは、PAL ではフィールド 1、NTSC ではフィールド 2)。 AMINTERLACE_FieldPatField1Only ストリームにフィールド 2 はない。 AMINTERLACE_FieldPatField2Only ストリームにフィールド 1 はない。 AMINTERLACE_FieldPatBothRegular フィールド 1 ごとにフィールド 2 が必ず 1 つある。 AMINTERLACE_FieldPatBothIrregular フィールド 1 とフィールド 2 が不規則に配置されている。 AMINTERLACE_DisplayModeBobOnly ディスプレイ モードは Bob のみ。 AMINTERLACE_DisplayModeWeaveOnly ディスプレイ モードはウィーブのみ。 AMINTERLACE_DisplayModeBobOrWeave Bob とウィーブの両方のモードがある。 - dwCopyProtectFlags
- ストリームの重複を制限しなければならないことを示す AMCOPYPROTECT_RestrictDuplication 値がセットされたフラグ。未定義の場合は、0 に指定すること。0 以外の場合、接続は拒否される。
- dwPictAspectRatioX
- 画像のアスペクト比 (x ディメンジョン)。たとえば、16 × 9 インチ ディスプレイの場合は 16。
- dwPictAspectRatioY
- 画像のアスペクト比 (y ディメンジョン)。たとえば、16 × 9 インチ ディスプレイの場合は 9。
- dwReserved1
- 予約済み。ゼロでなくてはならない。
- dwReserved2
- 将来的な使用のために予約されている。ゼロでなくてはならない。
- bmiHeader
- ビデオ イメージの色およびディメンジョン情報が格納された Microsoft® Win32® BITMAPINFOHEADER 構造体。
注意
dwInterlaceFlags のフィールド パターン フラグを確認するには、次のようにビット マスク AMINTERLACE_FieldPatternMask を使用する。
switch (dwInterlaceFlags & AMINTERLACE_FieldPatternMask) { case AMINTERLACE_FieldPatField1Only: // ストリームにフィールド 2 はない。 case AMINTERLACE_FieldPatField2Only: // ストリームにフィールド 1 はない。 case AMINTERLACE_FieldPatBothRegular: // フィールド 1 ごとにフィールド 2 が必ず 1 つある。 case AMINTERLACE_FieldPatBothIrregular: // フィールド 1 とフィールド 2 が不規則に配置されている。 }dwInterlaceFlags のディスプレイ モード フラグを確認するには、次のようにビット マスク AMINTERLACE_DisplayModeMask を使用する。
switch (dwInterlaceFlags & AMINTERLACE_DisplayModeMask) { case AMINTERLACE_DisplayModeBobOnly: // ディスプレイ モードは Bob のみ。 case AMINTERLACE_DisplayModeWeaveOnly: // ディスプレイ モードはウィーブのみ。 case AMINTERLACE_DisplayModeBobOrWeave: // Bob とウィーブの両方のモードがある。 }次の表は、オーバーレイ ミキサー フィルタのインターレース フィールド/フレームを表示するための、インターフェイス フラグとサンプル プロパティの有効な組み合わせを記述している。サンプル プロパティは各サンプルの AM_SAMPLE2_PROPERTIES 構造体の dwTypeSpecificFlags メンバに指定されている。
ディスプレイ モード インターレース フラグ メディア サンプル プロパティ フレーム 0 0 非インターレースの Bob AMINTERLACE_IsInterlaced |
AMINTERLACE_1FieldPerSample |
AMINTERLACE_DisplayModeBobOnlyAM_VIDEO_FLAG_FIELD1 or AM_VIDEO_FLAG_FIELD2 ウィーブ のみ AMINTERLACE_IsInterlaced |
AMINTERLACE_FieldPatBothRegular |
AMINTERLACE_DisplayModeWeaveOnlyAM_VIDEO_FLAG_WEAVE インターレースの Bob のみ フィールド 1 が最初 AMINTERLACE_IsInterlaced |
AMINTERLACE_DisplayModeBobOnlyAM_VIDEO_FLAG_FIELD1_FIRST フィールド 2 が最初 AMINTERLACE_IsInterlaced |
AMINTERLACE_DisplayModeBobOnly0 Bob か ウィーブ
(入れ替え可能)Bob、フィールド 1 が最初 AMINTERLACE_IsInterlaced |
AMINTERLACE_DisplayModeBobOrWeaveAM_VIDEO_FLAG_FIELD1_FIRST Bob、フィールド 2 が最初 AMINTERLACE_IsInterlaced |
AMINTERLACE_DisplayModeBobOrWeave0 ウィーブ AMINTERLACE_IsInterlaced |AMINTERLACE_DisplayModeBobOrWeave AM_VIDEO_FLAG_WEAVE