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 和 CropGranularityYy 方向上增加。 在本例中, 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 等。

CropAlignXCropAlignY 指示裁剪矩形在输入大小矩形内的位置。 假设裁剪矩形为 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) 是许多有效矩形的一个示例。

上面讨论的 MinCroppingSizeMaxCroppingSizeCropGranularityXCropGranularityYCropAlignXCropAlignY 成员共同指定 rcSource 的哪些值对描述输出引脚的媒体类型的 KS_VIDEOINFOHEADER 结构有效。 其余结构成员 (MinOutputSizeMaxOutputSizeOutputGranularityXOutputGranularityY) 描述KS_BITMAPINFOHEADER结构的 biWidthbiHeight 成员,这些成员包含在引脚的媒体类型KS_VIDEOINFOHEADER结构中。

要求

要求
Header ksmedia.h (包括 Ksmedia.h)

另请参阅

KS_AnalogVideoStandard

KS_BITMAPINFOHEADER

KS_VIDEOINFOHEADER