[与此页面关联的功能 DirectShow 是旧版功能。 它已被 MediaPlayer、 IMFMediaEngine 和 Media Foundation 中的音频/视频捕获所取代。 这些功能已针对Windows 10和Windows 11进行了优化。 Microsoft 强烈建议新代码尽可能在 Media Foundation 中使用 MediaPlayer、 IMFMediaEngine 和 音频/视频捕获 ,而不是 DirectShow。 如果可能,Microsoft 建议重写使用旧 API 的现有代码以使用新 API。]
VIDEO_STREAM_CONFIG_CAPS结构描述了一系列视频格式。 视频压缩和视频捕获筛选器使用此结构来描述它们可以生成的格式。
- guid
 - VideoStandard
 - MinFrameInterval
 - MaxFrameInterval
 
语法
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_VideoInfo 或 FORMAT_VideoInfo2。 有关详细信息,请参阅 AM_MEDIA_TYPE 结构的 formattype 成员。
VideoStandard
支持的模拟视频标准。 该值是 AnalogVideoStandard 枚举类型中的标志的按位组合,或零。
InputSize
传入视频信号的本机大小。 对于压缩器,大小取自输入引脚。 对于捕获筛选器,大小是筛选器可以数字化的最大信号,每个像素保持唯一。
MinCroppingSize
允许的最小源矩形。 源矩形在 VIDEOINFOHEADER 或 VIDEOINFOHEADER2 结构的 rcSource 成员中定义。
MaxCroppingSize
允许的最大源矩形。
CropGranularityX
源矩形的水平粒度。 此值指定 MinCroppingSize 和 MaxCroppingSize 之间有效的增量。
CropGranularityY
源矩形的垂直粒度。 此值指定 MinCroppingSize 和 MaxCroppingSize 之间有效的增量。
CropAlignX
源矩形的必需水平对齐方式。
CropAlignY
源矩形的必需垂直对齐方式。
MinOutputSize
最小输出大小。
MaxOutputSize
最大输出大小。
OutputGranularityX
输出宽度的粒度。 此值指定 MinOutputSize 和 MaxOutputSize 之间的有效增量。
OutputGranularityY
输出高度的粒度。 此值指定 MinOutputSize 和 MaxOutputSize 之间的有效增量。
StretchTapsX
指示筛选器可以水平拉伸图像的方式。
StretchTapsY
指示筛选器垂直拉伸图像的方式。
ShrinkTapsX
指示筛选器可以水平收缩图像的方式。
ShrinkTapsY
指示筛选器垂直收缩图像的量。
| 值 | 含义 | 
|---|---|
  | 
不支持拉伸/收缩。 | 
  | 
使用像素加倍 (拉伸) 或消除像素 (收缩) | 
  | 
使用内插 (2 次点击) | 
  | 
使用内插 (>2 次点击) | 
MinFrameInterval
最小帧持续时间,以 100 纳秒为单位。 此值仅适用于捕获筛选器。
MaxFrameInterval
最大帧持续时间,以 100 纳秒为单位。 此值仅适用于捕获筛选器。
MinBitsPerSecond
此引脚可以生成的最小数据速率。
MaxBitsPerSecond
此引脚可以产生的最大数据速率。
备注
IAMStreamConfig::GetStreamCaps 方法返回此结构。 应用程序可以使用此信息来修改视频压缩筛选器或视频捕获筛选器上的输出格式。
例如,假设筛选器返回源矩形的以下值:
- MinCroppingSize = (160,120)
 - MaxCroppingSize = (320,240)
 - CropGranularityX = 4
 - CropGranularityY = 8
 - CropAlignX = 2
 - CropAlignY = 4
 
CropAlignX 和 CropAlignY 成员定义源矩形左上角可以放置的位置。 例如,给定上述值,以下矩形有效:
- (0、0、160、120)
 - (2、0、162、120)
 - (2、8、162、128)
 
对于捕获筛选器,MinFrameInterval 和 MaxFrameInterval 成员定义每个帧的最小和最长持续时间,如 VIDEOINFOHEADER 或 VIDEOINFOHEADER2 结构的 AvgTimePerFrame 成员中给定。 筛选器可能不支持介于这两个值之间的帧速率。 IAMStreamConfig::SetFormat 方法会将帧速率设置为筛选器支持的最近值。 如果 SetFormat 成功,请调用 IAMStreamConfig::GetFormat 以确定实际帧速率。
要求
| 标头 | strmif.h (包括 Dshow.h) |