KS_VIDEO_STREAM_CONFIG_CAPS 結構 (ksmedia.h)
KS_VIDEO_STREAM_CONFIG_CAPS 結構描述視訊數據流的組態和功能,包括類比視訊標準 (例如 NTSC、PAL 或 SECAM) 、縮放和裁剪功能;最小和最大幀速率;和最小和最大數據速率。
語法
typedef struct _KS_VIDEO_STREAM_CONFIG_CAPS {
GUID guid;
ULONG VideoStandard;
SIZE InputSize;
SIZE MinCroppingSize;
SIZE MaxCroppingSize;
int CropGranularityX;
int CropGranularityY;
int CropAlignX;
int CropAlignY;
SIZE MinOutputSize;
SIZE MaxOutputSize;
int OutputGranularityX;
int OutputGranularityY;
int StretchTapsX;
int StretchTapsY;
int ShrinkTapsX;
int ShrinkTapsY;
LONGLONG MinFrameInterval;
LONGLONG MaxFrameInterval;
LONG MinBitsPerSecond;
LONG MaxBitsPerSecond;
} KS_VIDEO_STREAM_CONFIG_CAPS, *PKS_VIDEO_STREAM_CONFIG_CAPS;
成員
guid
指定視訊格式類型的 GUID。 可能的值包括:
KSDATAFORMAT_SPECIFIER_VIDEOINFO
KSDATAFORMAT_SPECIFIER_VIDEOINFO2
KSDATAFORMAT_SPECIFIER_ANALOGVIDEO
KSDATAFORMAT_SPECIFIER_VBI
KSDATAFORMAT_SPECIFIER_MPEG1_VIDEO
KSDATAFORMAT_SPECIFIER_MPEG2_VIDEO
此 GUID 與 DirectShow AM_MEDIA_TYPE 列舉相同。 如需AM_MEDIA_TYPE的詳細資訊,請參閱 DirectX SDK 檔。
VideoStandard
指定數據流所支援的模擬視訊標準。 這個成員可以設定為一或多個 (邏輯上來自 KS_AnalogVideoStandard列舉的 ORed) 值。
InputSize
指定傳入訊號的大小。 InputSize 會以圖元表示影像矩形的寬度和高度。 這是篩選條件可以使用每個剩餘唯一像素來數位化的最大訊號。
MinCroppingSize
指定允許的最小裁剪矩形,如與 DataRange 成員相關聯的 KS_VIDEOINFOHEADER 結構的 rcSource 成員所指定。
MaxCroppingSize
指定允許的最大裁剪矩形,如與 DataRange 成員相關聯的 KS_VIDEOINFOHEADER 結構的 rcSource 成員所指定。
CropGranularityX
指定裁剪大小的水平粒度。 例如,有效的寬度可以指定為四倍的倍數。
CropGranularityY
指定裁剪大小的垂直粒度。 例如,有效的高度可以指定為四倍的倍數。
CropAlignX
指定 InputSize 內裁剪矩形的水平對齊方式。 例如,minidriver 可以指定有效的矩形必須在四個界限上啟動。
CropAlignY
指定 InputSize 內裁剪矩形的垂直對齊方式。 例如,minidriver 可以指定有效的矩形必須在四個界限上啟動。
MinOutputSize
指定這個釘選可以產生的最小位圖。
MaxOutputSize
指定這個釘選可產生的最大位圖。
OutputGranularityX
指定輸出點陣圖寬度的粒度。
OutputGranularityY
指定輸出點陣圖高度的粒度。
StretchTapsX
指定下列其中一個值,指出篩選條件可以延展影像的寬度。
值 | 意義 |
---|---|
0 | 篩選無法延展。 |
1 | 篩選會使用圖元加倍來達成延展。 |
2 | 篩選條件會使用插補 (2 個點選) 。 |
3 | 篩選條件會使用更順暢的 () 插補形式。 |
StretchTapsY
指定下列其中一個值,指出篩選條件可以延展影像的高度。
值 | 意義 |
---|---|
0 | 篩選無法延展。 |
1 | 篩選會使用圖元加倍來達成延展。 |
2 | 篩選條件會使用插補 (2 個點選) 。 |
3 | 篩選條件會使用更順暢的 () 插補形式。 |
ShrinkTapsX
指定下列其中一個值,以指出篩選條件可以壓縮影像的寬度。
值 | 意義 |
---|---|
0 | 篩選無法壓縮。 |
1 | 篩選條件會排除一些像素數據列,以達到壓縮。 |
2 | 篩選條件會使用插補 (2 個點選) 。 |
3 | 篩選條件會使用更順暢的 () 插補形式。 |
ShrinkTapsY
指定下列其中一個值,指出篩選條件可以壓縮影像的高度。
值 | 意義 |
---|---|
0 | 篩選無法壓縮。 |
1 | 篩選條件會排除一些像素數據行,以達到壓縮。 |
2 | 篩選條件會使用插補 (2 個點選) 。 |
3 | 篩選條件會使用更順暢的 () 插補形式。 |
MinFrameInterval
指定允許的最小幀速率。 此值僅適用於擷取篩選。
MaxFrameInterval
指定允許的最大幀速率。 此值僅適用於擷取篩選。
MinBitsPerSecond
指定此針腳可以產生的每秒位數據速率下限。
MaxBitsPerSecond
指定此針腳可以產生的每秒位數據速率上限。
備註
KS_VIDEO_STREAM_CONFIG_CAPS 結構與 DirectShow VIDEO_STREAM_CONFIG_CAPS 結構相同。
請務必瞭解這個結構的成員之間的關聯性。 例如,假設某些結構成員的下列值:
MinCroppingSize = (160, 120)
MaxCroppingSize = (320, 240)
CropGranularityX = 4
CropGranularityY = 8
這些值表示有效的裁剪大小從 MinCroppingSize 開始,並依 CropGranularityX 和 y 方向的 CropGranularityY 增加 x 方向的步驟。 在此情況下, x 值可以位於 160 到 320 像素的任何位置,步驟為 4,而 y 值可以在步驟 8 到 240 像素的任何位置。
在範例案例中,有一些有效的大小如下:
160 × 120、164 × 120、168 × 120、172 × 120 等等。
160 × 128、164 × 128、168 × 128、172 × 128 等等。
160 × 136、164 × 136、168 × 136、172 × 136 等等。
CropAlignX 和 CropAlignY 指出裁剪矩形可以在輸入大小矩形內的位置。 假設 160 × 120 裁剪矩形,且 CropAlignX 的值為 2,而 CropAlignY 的值為 4,KS_VIDEOINFOHEADER 結構的 rcSource 成員的一些有效值會是:
(0, 0, 160, 120)
(2、0、162、120)
(2、4、162、124)
(2、8、162、128)
針對 320 × 240 裁剪矩形和相同的裁剪對齊值, (2、4、322、244) 是許多有效矩形的其中一個範例。
MinCroppingSize、MaxCroppingSize、CropGranularityX、CropGranularityY、CropAlignX 和 CropAlignY 成員會共同合作,以指定 rcSource 對描述輸出針腳媒體類型的KS_VIDEOINFOHEADER結構有效。 其餘結構成員 (MinOutputSize、MaxOutputSize、OutputGranularityX 和 OutputGranularityY) 描述KS_BITMAPINFOHEADER結構的 biWidth 和 biHeight 成員,該成員包含在針腳的媒體類型KS_VIDEOINFOHEADER結構中。
規格需求
需求 | 值 |
---|---|
標頭 | ksmedia.h (包含 Ksmedia.h) |