KS_VIDEOINFOHEADER2 結構 (ksmedia .h)
KS_VIDEOINFOHEADER2 結構描述影片串流的詳細資料,包括 bob 或編織設定、禁止複製和圖元外觀比例。
語法
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 中定義的一或多個 (邏輯 or) 值:
| 旗標 | 描述 |
|---|---|
| KS_INTERLACE_IsInterlaced | 表示交錯資料流程。 如果是0,則其他 KS_INTERLACE_Xxx 位則無關。 |
| KS_INTERLACE_1FieldPerSample | 表示每個媒體的一個欄位範例。 如果為零,表示每個媒體範例有兩個欄位。 |
| KS_INTERLACE_Field1First | 表示欄位1是第一個。 如果是零,則表示欄位2是第一個。 PAL 中的頂端欄位為欄位1,NTSC 中的 top 欄位為欄位2。 |
| KS_INTERLACE_UNUSED | 未使用 |
| KS_INTERLACE_FieldPatternMask | 表示用來指定欄位模式的位。 |
| KS_INTERLACE_FieldPatField1Only | 表示資料流程絕不會包含欄位2。 |
| KS_INTERLACE_FieldPatField2Only | 表示資料流程絕不會包含欄位1。 |
| KS_INTERLACE_FieldPatBothRegular | 指出每個欄位1都有一個欄位2。 |
| KS_INTERLACE_FieldPatBothIrregular | 表示欄位1s 和欄位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。
| 值 | 描述 |
|---|---|
| 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 旗標。
兩個 AMCONTROL_PAD_xxx 旗標會由兩個旗標用來判斷輸出矩形的長寬比。
如果設定了 AMCONTROL_COLORINFO_PRESENT 旗標,則表示 dwControlFlags 欄位的最高24位會視為 DXVA_ExtendedFormat 結構。
如需 dwControlFlags 的詳細資訊,請參閱本主題稍後的「備註」一節。
dwReserved1
這個成員是為了與舊版相容。 如需詳細資訊,請參閱 dwControlFlags 。
dwReserved2
保留供系統使用。 必須設定為零,否則連接將會遭到拒絕。
bmiHeader
指出 KS_BITMAPINFOHEADER 結構,其中包含影片影像點陣圖的色彩和維度資訊。
備註
若要描述沒有 bob 或編織設定的影片串流,請使用 KS_VIDEOINFOHEADER。
KS_VIDEOINFOHEADER2 結構與 DirectShow VIDEOINFOHEADER2結構相同。
Minidrivers 會產生影片欄位 (而非畫面格) 必須使用包含 KS_VIDEOINFOHEADER2 結構的 KS_DATARANGE_VIDEO2 結構。
來源篩選器可以透過提供可有效定義 rcSource 成員中裁剪矩形的值,要求接收篩選器只接受影片的某個區段。 但是,如果接收篩選不會在連接時檢查剪切矩形,接收篩選就只會轉譯所有的影片,實際上會略過從來源篩選傳遞到接收篩選的任何裁剪資訊。
在理想的情況下,接收篩選會檢查 rcSource ,如果接收篩選不支援影像解壓縮,且 矩形不是空的 ,則會拒絕連接。 篩選準則應該使用 Win32 函數 SetRectEmpty 將矩形重設為所有零 (,並將 IsRectEmpty 設定為稍後檢查矩形) 。
RcTarget 成員會指定影片的目的地矩形。 大部分來源篩選都會將這個成員設定為全部零。 下游篩選器可以要求將影片放在其所提供緩衝區的特定區域中。 在此情況下,它會呼叫具有非空白目標的 Win32 函數 QueryAccept 。
如果在 dwControlFlags 成員中設定了 AMCONTROL_COLORINFO_PRESENT 旗標,您可以將 dwControlFlags 值轉換成 DXVA_ExtendedFormat 結構,以存取擴充的色彩資訊。 如需詳細資訊,請參閱 VIDEOINFOHEADER2。
規格需求
| 標頭 | ksmedia (包含 Ksmedia) |
另請參閱
意見反應
提交並檢視相關的意見反應