CBaseStreamControl 类

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

cbasestreamcontrol 类层次结构

此类实现输入和输出引脚的 IAMStreamControl 接口。 它提供对启动和停止筛选器上单个引脚的控制。 支持 IAMStreamControl 的 引脚应继承自此基类。 下面是输入引脚的典型声明:

class CMyInputPin : public CBaseInputPin, public CBaseStreamControl

请务必重写 NonDelegatingQueryInteface 以公开 IAMStreamControl。 有关详细信息,请参阅 如何实现 IUnknown

公共方法 说明
CBaseStreamControl 构造函数方法。
~CBaseStreamControl 析构函数方法。
CheckStreamState 确定是应传递还是应放弃媒体示例。
冲洗 通知基类引脚已启动或停止刷新。
NotifyFilterState 当筛选器的状态发生更改时,通知引脚。
SetFilterGraph 指定流控制事件的事件接收器。
SetSyncSource 通知当前引用时钟的基类。
IAMStreamControl 方法 说明
GetInfo 检索有关当前流控制设置的信息,包括开始和停止时间。
StartAt 通知引脚何时开始传送数据。
StopAt 通知引脚何时停止传送数据。

备注

此类要求引脚和拥有筛选器在发生各种事件(例如联接图形的筛选器或接收新的引用时钟)时通知类。 应调用以下类方法:

CBaseStreamControl 使用筛选器图的引用时钟来确定筛选器应提供哪些样本,以及应丢弃哪些样本。 在引脚的 IMemInputPin::Receive 方法中,使用指向传入媒体示例的指针调用 CBaseStreamControl::CheckStreamState 方法。 如果方法STREAM_FLOWING返回值,则向下游传递示例。 否则,请放弃它。

要求

要求
标头
Strmctl.h (包括 Streams.h)

Strmbase.lib (零售版本) ;
Strmbasd.lib (调试生成)