示例抓取器筛选器

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

注意

[已弃用。 此 API 可能会从 Windows 的未来版本中删除。]

 

Sample Grabber 筛选器提供了一种在样本通过筛选器图时检索样本的方法。 它是具有一个输入引脚和一个输出引脚的转换筛选器。 它按原样向下游传递所有样本,因此无需更改数据流即可将其插入筛选器图中。 然后,应用程序可以通过在 ISampleGrabber 接口上调用方法,从筛选器中检索各个样本。

如果要在不呈现数据的情况下检索样本,请将 Sample Grabber 筛选器连接到 Null 呈现器 筛选器。

Label
筛选器接口 IBaseFilterISampleGrabber
输入引脚媒体类型 任何媒体类型。
输入引脚接口 IMemInputPinIPinIQualityControl
输出引脚媒体类型 任何媒体类型。 匹配输入媒体类型。
输出引脚接口 IMediaPositionIMediaSeekingIPinIQualityControl
筛选器 CLSID CLSID_SampleGrabber
属性页 CLSID 无属性页。
可执行文件 Qedit.dll
优点 MERIT_DO_NOT_USE
筛选器类别 CLSID_LegacyAmFilterCategory

 

备注

若要使用此筛选器,请将其添加到筛选器图,并使用所需的媒体类型调用 ISampleGrabber::SetMediaType 。 此方法指定筛选器的输入和输出引脚连接的媒体类型。 然后将筛选器连接到图中的其他筛选器。

如果调用值为 TRUEISampleGrabber::SetBufferSamples,筛选器将缓冲它收到的每个样本,然后再将其传递到下游。 调用 ISampleGrabber::GetCurrentBuffer 方法以检索缓冲区的当前内容。 或者,可以调用 ISampleGrabber::SetCallback ,让筛选器在收到样本时调用回调函数。

该筛选器对视频格式具有以下限制:

  • 它不支持自上而下方向 (负 biHeight) 的视频类型。
  • 它不支持 VIDEOINFOHEADER2 格式结构 (格式类型等于 FORMAT_VideoInfo2) 。
  • 它拒绝图面步幅与视频宽度不匹配的任何视频类型。

因此,对于某些视频类型,示例抓取器不会连接到视频混合呈现器 (VMR) 。

要求

要求
标头
Qedit.h

另请参阅

DirectShow Editing Services 对象

使用示例抓取器