KS_VIDEOINFOHEADER2 構造体 (ksmedia.h)
KS_VIDEOINFOHEADER2構造では、bob または weave の設定、コピー保護、ピクセル縦横比など、ビデオ ストリームの詳細について説明します。
構文
typedef struct tagKS_VIDEOINFOHEADER2 {
RECT rcSource;
RECT rcTarget;
DWORD dwBitRate;
DWORD dwBitErrorRate;
REFERENCE_TIME AvgTimePerFrame;
DWORD dwInterlaceFlags;
DWORD dwCopyProtectFlags;
DWORD dwPictAspectRatioX;
DWORD dwPictAspectRatioY;
union {
DWORD dwControlFlags;
DWORD dwReserved1;
};
DWORD dwReserved2;
KS_BITMAPINFOHEADER bmiHeader;
} KS_VIDEOINFOHEADER2, *PKS_VIDEOINFOHEADER2;
メンバー
rcSource
使用するアクティブなビデオ信号の部分を選択するクリッピング四角形を指定します。
rcTarget
使用するターゲット バッファーの一部を示す四角形を指定します。
dwBitRate
ビデオ ストリームの適切なデータ レートを 1 秒あたりのビット数で示す値を指定します。
dwBitErrorRate
ビデオ ストリームのデータ エラー率を 1 秒あたりのビット エラー数で示す値を指定します。
AvgTimePerFrame
フレームあたりの平均時間を 100 ナノ秒単位で指定します。
dwInterlaceFlags
インターレース情報を指定します。 未定義のフラグは 0 に設定する必要があります。または、接続が拒否される可能性があります。 このメンバーは、 ksmedia.h で定義されている 1 つ以上の (論理 OR) 値に設定できます。
フラグ | 説明 |
---|---|
KS_INTERLACE_IsInterlaced | インターレース ストリームを示します。 0 の場合、他のKS_INTERLACE_Xxx ビットは関係ありません。 |
KS_INTERLACE_1FieldPerSample | メディア サンプルごとに 1 つのフィールドを示します。 0 の場合は、メディア サンプルごとに 2 つのフィールドを示します。 |
KS_INTERLACE_Field1First | フィールド 1 が最初であることを示します。 0 の場合は、フィールド 2 が最初であることを示します。 PAL の上位フィールドはフィールド 1、NTSC の最上位フィールドはフィールド 2 です。 |
KS_INTERLACE_UNUSED | 未使用 |
KS_INTERLACE_FieldPatternMask | フィールド パターンの指定に使用されるビットを示します。 |
KS_INTERLACE_FieldPatField1Only | ストリームに Field 2 が含まれていることを示します。 |
KS_INTERLACE_FieldPatField2Only | ストリームに Field 1 が含まれていることを示します。 |
KS_INTERLACE_FieldPatBothRegular | フィールド 1 ごとにフィールド 2 があることを示します。 |
KS_INTERLACE_FieldPatBothIrregular | フィールド 1 とフィールド 2 のランダム なパターンを示します。 |
KS_INTERLACE_DisplayModeMask | ビデオ キャプチャに無効です。 |
KS_INTERLACE_DisplayModeBobOnly | ビデオ キャプチャに無効です。 |
KS_INTERLACE_DisplayModeWeaveOnly | ビデオ キャプチャに無効です。 |
KS_INTERLACE_DisplayModeBobOrWeave | ビデオ キャプチャに無効です。 |
dwCopyProtectFlags
ストリームの重複を制限するかどうかを示す KSCOPYPROTECTRestrictDuplication 値 (0x00000001) を指定します。 未定義の場合は、0 を指定するか、接続が拒否されます。
dwPictAspectRatioX
図の縦横比の x ディメンションを指定します (たとえば、16 × 9 ディスプレイの場合は 16)。 この値は、ピクセル単位ではなくインチ単位で表されます。
dwPictAspectRatioY
図の縦横比の y ディメンションを指定します (たとえば、16 × 9 ディスプレイの場合は 9)。 この値は、ピクセル単位ではなくインチ単位で表されます。
dwControlFlags
Windows Vista より前のオペレーティング システムでは、このメンバーは dwReserved1 という名前で、ゼロにする必要があります。 Windows Vista では、 dwReserved1 は dwControlFlags という名前の新しいメンバーと共用体で結合されました。 dwControlFlags を使用する場合、次の表に示すフラグのビットごとの OR が含まれます。
値 | 説明 |
---|---|
AMCONTROL_USED | dwControlFlags フラグが使用されていることを示します。 |
AMCONTROL_PAD_TO_4x3 | 画像を埋め込み、4 x 3 の領域に表示する必要があります。 |
AMCONTROL_PAD_TO_16x9 | 画像を埋め込み、16 x 9 の領域に表示する必要があります。 |
AMCONTROL_COLORINFO_PRESENT | 追加の色情報は、 dwControlFlags フィールドの上位 24 ビットに含まれています。 |
AMCONTROL_USED フラグは、以前のフィルターとの下位互換性を提供します。 AMCONTROL_USED フラグが設定されていない場合、このフィールドの残りのビットは無視する必要があります。 フィルターで他のフラグを使用する場合は、AMCONTROL_USED フラグを設定する必要があります。
デコーダーは、出力四角形の縦横比を決定するために、2 つのAMCONTROL_PAD_xxx フラグを使用します。
AMCONTROL_COLORINFO_PRESENT フラグが設定されている場合は、dwControlFlags フィールドの上位 24 ビットが DXVA_ExtendedFormat 構造体として扱われることを意味します。
dwControlFlags の詳細については、このトピックで後述する「解説」セクションを参照してください。
dwReserved1
このメンバーは、旧バージョンとの互換性を維持するために使用されます。 詳細については、「 dwControlFlags 」を参照してください。
dwReserved2
システムで使用するために予約されています。 0 に設定する必要があります。または、接続が拒否されます。
bmiHeader
ビデオ イメージ ビットマップの色とディメンション情報を含む KS_BITMAPINFOHEADER 構造体を示します。
注釈
bob または weave 設定を使用せずにビデオ ストリームを記述するには、 KS_VIDEOINFOHEADERを使用します。
KS_VIDEOINFOHEADER2構造体は、DirectShow VIDEOINFOHEADER2 構造体と同じです。
(フレームではなく) ビデオ フィールドを生成するミニドライバーをキャプチャするには、KS_VIDEOINFOHEADER2構造を含む KS_DATARANGE_VIDEO2 構造を使用する必要があります。
ソース フィルターは、 rcSource メンバーでクリッピング四角形を効果的に定義する値を提供することで、シンク フィルターがビデオのセクションのみを受け取るように要求できます。 ただし、シンク フィルターが接続時にクリッピング四角形にチェックしない場合、シンク フィルターは単にすべてのビデオをレンダリングし、ソース フィルターからシンク フィルターに渡されたクリッピング情報を実質的に無視します。
理想的には、シンク フィルターは rcSource を チェックし、シンク フィルターがイメージ抽出をサポートせず、四角形が空 でない 場合は、接続を拒否します。 フィルターでは、Win32 関数 SetRectEmpty を使用して四角形をすべてのゼロにリセットする必要があります (また、後で四角形チェックに IsRectEmpty を設定します)。
rcTarget メンバーは、ビデオの変換先の四角形を指定します。 ほとんどのソース フィルターは、このメンバーをすべてのゼロに設定します。 ダウンストリーム フィルターは、ビデオを提供するバッファーの特定の領域に配置することを要求できます。 この場合、Win32 関数 QueryAccept を空でないターゲットで呼び出します。
AMCONTROL_COLORINFO_PRESENT フラグが dwControlFlags メンバーに設定されている場合は、 dwControlFlags 値を DXVA_ExtendedFormat 構造体にキャストして、拡張色情報にアクセスできます。 詳細については、「 VIDEOINFOHEADER2」を参照してください。
要件
要件 | 値 |
---|---|
Header | ksmedia.h (Ksmedia.h を含む) |