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
指定流支持的模拟视频标准。 此成员可以设置为一个或多个 (逻辑上 ORed) KS_AnalogVideoStandard 枚举的值。
InputSize
指定传入信号的大小。 InputSize 指示图像矩形的宽度和高度(以像素为单位)。 这是筛选器可以在每个像素保持唯一的情况下数字化的最大信号。
MinCroppingSize
指定允许的最小裁剪矩形,如 KS_VIDEOINFOHEADER 结构的 rcSource 成员中指定的,该结构与 DataRange 成员相关联。
MaxCroppingSize
指定允许的最大裁剪矩形,如 KS_VIDEOINFOHEADER 结构的 rcSource 成员中指定的,该成员与 DataRange 成员相关联。
CropGranularityX
指定裁剪大小的水平粒度。 例如,可以将有效宽度指定为 4 的倍数。
CropGranularityY
指定裁剪大小的垂直粒度。 例如,可以将有效高度指定为 4 的倍数。
CropAlignX
指定 InputSize 内裁剪矩形的水平对齐方式。 例如,微型驱动程序可以指定有效的矩形必须在边界上开始,该边界是 4 的倍数。
CropAlignY
指定 InputSize 内裁剪矩形的垂直对齐方式。 例如,微型驱动程序可以指定有效的矩形必须在边界上开始,该边界是 4 的倍数。
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 开始,在 x 方向上由 CropGranularityX 和 CropGranularityY 在 y 方向上增加。 在本例中, x 值可以是 160 到 320 像素(以 4 步为单位), y 值可以是 120 到 240 像素(以 8 步为单位)。
在示例方案中,一些有效大小为:
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结构中。
要求
要求 | 值 |
---|---|
Header | ksmedia.h (包括 Ksmedia.h) |