VIDEO_STREAM_CONFIG_CAPS结构 (strmif.h)

[与此页面关联的功能 DirectShow 是旧版功能。 它已被 MediaPlayerIMFMediaEngineMedia Foundation 中的音频/视频捕获所取代。 这些功能已针对Windows 10和Windows 11进行了优化。 Microsoft 强烈建议新代码尽可能在 Media Foundation 中使用 MediaPlayerIMFMediaEngine音频/视频捕获 ,而不是 DirectShow。 如果可能,Microsoft 建议重写使用旧 API 的现有代码以使用新 API。]

VIDEO_STREAM_CONFIG_CAPS结构描述了一系列视频格式。 视频压缩和视频捕获筛选器使用此结构来描述它们可以生成的格式。

注意 此结构的大部分已弃用,但以下结构成员除外:
  • guid
  • VideoStandard
  • MinFrameInterval
  • MaxFrameInterval
应用程序可以使用 MinFrameIntervalMaxFrameInterval 从视频捕获设备获取支持的帧速率范围。 应用程序应避免使用此结构的任何其他成员。 请改用 IAMStreamConfig::GetFormat 方法返回的 AM_MEDIA_TYPE 结构。
 

语法

typedef struct _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;
} VIDEO_STREAM_CONFIG_CAPS;

成员

guid

标识格式类型的 GUID。 例如, FORMAT_VideoInfoFORMAT_VideoInfo2。 有关详细信息,请参阅 AM_MEDIA_TYPE 结构的 formattype 成员。

VideoStandard

支持的模拟视频标准。 该值是 AnalogVideoStandard 枚举类型中的标志的按位组合,或零。

InputSize

传入视频信号的本机大小。 对于压缩器,大小取自输入引脚。 对于捕获筛选器,大小是筛选器可以数字化的最大信号,每个像素保持唯一。

注意 废弃。
 

MinCroppingSize

允许的最小源矩形。 源矩形在 VIDEOINFOHEADERVIDEOINFOHEADER2 结构的 rcSource 成员中定义。

注意 废弃。
 

MaxCroppingSize

允许的最大源矩形。

注意 废弃。
 

CropGranularityX

源矩形的水平粒度。 此值指定 MinCroppingSizeMaxCroppingSize 之间有效的增量。

注意 废弃。
 

CropGranularityY

源矩形的垂直粒度。 此值指定 MinCroppingSizeMaxCroppingSize 之间有效的增量。

注意 废弃。
 

CropAlignX

源矩形的必需水平对齐方式。

注意 废弃。
 

CropAlignY

源矩形的必需垂直对齐方式。

注意 废弃。
 

MinOutputSize

最小输出大小。

注意 废弃。
 

MaxOutputSize

最大输出大小。

注意 废弃。
 

OutputGranularityX

输出宽度的粒度。 此值指定 MinOutputSizeMaxOutputSize 之间的有效增量。

注意 废弃。
 

OutputGranularityY

输出高度的粒度。 此值指定 MinOutputSizeMaxOutputSize 之间的有效增量。

注意 废弃。
 

StretchTapsX

指示筛选器可以水平拉伸图像的方式。

注意 废弃。
 

StretchTapsY

指示筛选器垂直拉伸图像的方式。

注意 废弃。
 

ShrinkTapsX

指示筛选器可以水平收缩图像的方式。

注意 废弃。
 

ShrinkTapsY

指示筛选器垂直收缩图像的量。

注意 废弃。
 
前四个结构成员使用以下值:
含义
0
不支持拉伸/收缩。
1
使用像素加倍 (拉伸) 或消除像素 (收缩)
2
使用内插 (2 次点击)
3 及更高版本
使用内插 (>2 次点击)

MinFrameInterval

最小帧持续时间,以 100 纳秒为单位。 此值仅适用于捕获筛选器。

MaxFrameInterval

最大帧持续时间,以 100 纳秒为单位。 此值仅适用于捕获筛选器。

MinBitsPerSecond

此引脚可以生成的最小数据速率。

注意 废弃。
 

MaxBitsPerSecond

此引脚可以产生的最大数据速率。

注意 废弃。
 

备注

IAMStreamConfig::GetStreamCaps 方法返回此结构。 应用程序可以使用此信息来修改视频压缩筛选器或视频捕获筛选器上的输出格式。

例如,假设筛选器返回源矩形的以下值:

  • MinCroppingSize = (160,120)
  • MaxCroppingSize = (320,240)
  • CropGranularityX = 4
  • CropGranularityY = 8
  • CropAlignX = 2
  • CropAlignY = 4
这些数字定义对 VIDEOINFOHEADER 或 VIDEOINFOHEADER2 结构的 rcSource 成员有效的矩形集。 在此示例中,最小源矩形为 160 像素宽 x 120 像素高。 宽度可以增加 4 像素,最大为 320。 高度可以以 8 像素的步长增加到最多 240 个像素。 换句话说,有效宽度为 160、164、168 ...320;有效高度为 120、128、136...240.

CropAlignXCropAlignY 成员定义源矩形左上角可以放置的位置。 例如,给定上述值,以下矩形有效:

  • (0、0、160、120)
  • (2、0、162、120)
  • (2、8、162、128)
以类似的方式,MinOutputSizeMaxOutputSizeOutputGranularityXOutputGranularityY 成员定义 BITMAPINFOHEADER 结构的 biWidthbiHeight 成员支持的值。

对于捕获筛选器,MinFrameIntervalMaxFrameInterval 成员定义每个帧的最小和最长持续时间,如 VIDEOINFOHEADER 或 VIDEOINFOHEADER2 结构的 AvgTimePerFrame 成员中给定。 筛选器可能不支持介于这两个值之间的帧速率。 IAMStreamConfig::SetFormat 方法会将帧速率设置为筛选器支持的最近值。 如果 SetFormat 成功,请调用 IAMStreamConfig::GetFormat 以确定实际帧速率。

要求

   
标头 strmif.h (包括 Dshow.h)

另请参阅

DirectShow 结构