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
指定值,指出視訊數據流的適當數據速率,以每秒的位數為單位。
dwBitErrorRate
指定值,指出視訊數據流的數據錯誤率,以每秒的位錯誤為單位。
AvgTimePerFrame
以100奈秒為單位指定每個畫面的平均時間。
dwInterlaceFlags
指定交錯資訊。 未定義的旗標必須設定為零,否則可能會拒絕連線。 這個成員可以設定為 ksmedia.h 中定義的一或多個 (邏輯 OR) 值:
旗標 | 描述 |
---|---|
KS_INTERLACE_IsInterlaced | 表示交錯數據流。 如果為 0,則其他KS_INTERLACE_Xxx位無關。 |
KS_INTERLACE_1FieldPerSample | 指出每個媒體範例一個字段。 如果為零,則表示每個媒體範例的兩個字段。 |
KS_INTERLACE_Field1First | 表示第一個字段 1。 如果為零,表示第一個字段 2。 PAL 中的頂端欄位是欄位 1,NTSC 中的頂端欄位是欄位 2。 |
KS_INTERLACE_UNUSED | 未使用 |
KS_INTERLACE_FieldPatternMask | 指出用來指定欄位模式的位。 |
KS_INTERLACE_FieldPatField1Only | 表示數據流永遠不會包含欄位 2。 |
KS_INTERLACE_FieldPatField2Only | 表示數據流永遠不會包含欄位 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) ,以指出是否應限制數據流重複。 如果未定義,請指定零或將拒絕連接。
dwPictAspectRatioX
指定圖片外觀比例的 x 維度 (例如,16 × 9 顯示) 的 16。 此值以英吋為單位來表示,而不是以圖元為單位。
dwPictAspectRatioY
指定圖片外觀比例的 y 維度 (例如,9 表示 16 × 9 顯示) 。 此值以英吋為單位來表示,而不是以圖元為單位。
dwControlFlags
在 Windows Vista 之前的操作系統中,此成員的名稱為 dwReserved1 ,而且必須是零。 在 Windows Vista 中, dwReserved1 會與名為 dwControlFlags 的新成員結合在一起。 如果使用, dwControlFlags 會包含下表中旗標的位 OR。
值 | Description |
---|---|
AMCONTROL_USED | 表示使用 dwControlFlags 旗標 。 |
AMCONTROL_PAD_TO_4x3 | 影像應該填補並顯示在 4 x 3 區域中。 |
AMCONTROL_PAD_TO_16x9 | 影像應該填補並顯示在16 x9區域中。 |
AMCONTROL_COLORINFO_PRESENT | 其他色彩資訊包含在 dwControlFlags 字段的上方 24 位中。 |
AMCONTROL_USED旗標提供與舊版篩選條件的回溯相容性。 如果未設定AMCONTROL_USED旗標,則應該忽略此欄位中的其餘位。 如果篩選條件使用任何其他旗標,它應該設定AMCONTROL_USED旗標。
譯碼器會使用兩個AMCONTROL_PAD_xxx旗標來判斷輸出矩形的外觀比例。
如果已設定AMCONTROL_COLORINFO_PRESENT旗標,表示 dwControlFlags 字段的上方 24 位會被視為 DXVA_ExtendedFormat 結構。
如需 dwControlFlags 的詳細資訊,請參閱本主題稍後的一節。
dwReserved1
此成員適用於回溯相容性。 如需詳細資訊 ,請參閱 dwControlFlags 。
dwReserved2
保留供系統使用。 必須設定為零,否則將會拒絕連線。
bmiHeader
指出 KS_BITMAPINFOHEADER 結構,其中包含視訊影像位圖的色彩和維度資訊。
備註
若要描述沒有 bob 或 weave 設定的視訊串流,請使用 KS_VIDEOINFOHEADER。
KS_VIDEOINFOHEADER2 結構與 DirectShow VIDEOINFOHEADER2 結構相同。
擷取產生視訊欄位的迷你驅動程式 (,而不是畫面) 必須使用包含 KS_VIDEOINFOHEADER2結構的KS_DATARANGE_VIDEO2 結構。
來源篩選條件可以藉由提供有效定義 rcSource 成員中裁剪矩形的值,要求接收篩選只接受視訊的區段。 不過,如果接收篩選未檢查連接上的裁剪矩形,接收篩選只會轉譯所有視訊,有效地忽略從來源篩選傳遞至接收篩選的任何裁剪資訊。
在理想情況下,接收篩選器會檢查 rcSource ,如果接收篩選不支援影像擷取,而且矩形 不是 空的,則會拒絕連線。 篩選條件應該使用 Win32 函數 SetRectEmpty 將矩形重設為所有零 (,並將 IsRectEmpty 設定為稍後檢查矩形) 。
rcTarget 成員會指定影片的目的地矩形。 大部分的來源篩選會將此成員設定為所有零。 下游篩選條件可以要求將視訊放在它提供之緩衝區的特定區域中。 在此情況下,它會使用無空目標呼叫 Win32 函式 QueryAccept 。
如果在 dwControlFlags 成員中設定AMCONTROL_COLORINFO_PRESENT旗標,您可以將 dwControlFlags 值轉換成 DXVA_ExtendedFormat 結構,以存取延伸色彩資訊。 如需詳細資訊,請參閱 VIDEOINFOHEADER2。
規格需求
需求 | 值 |
---|---|
標頭 | ksmedia.h (包含 Ksmedia.h) |