CSource 类

csource class hierarchy

CSource 类是用于实现源筛选器的基类。 从 CSource 派生的筛选器包含一个或多个派生自 CSourceStream 类的输出引脚。 每个输出引脚都会创建一个辅助线程,该线程将推送下游媒体示例。

注意

CSource 类旨在支持数据流的推送模型。 不建议使用此类来创建文件读取器筛选器。 文件读取器应通过 IAsyncReader 接口支持拉取模型。 有关详细信息,请参阅筛选器开发人员数据流

受保护的成员变量 说明
m_iPins 筛选器上的引脚数。
m_paStreams 引脚数组。
m_cStateLock 保护筛选器状态的关键节对象。
公共方法 描述
CSource 构造函数方法。
~CSource 析构函数方法。
GetPinCount 检索筛选器上的引脚数。
GetPin 检索引脚。
pStateLock 检索指向筛选器的关键节对象的指针。
AddPin 向筛选器添加新的输出图钉。
RemovePin 从筛选器中删除指定的引脚。
FindPinNumber 检索筛选器上指定引脚的数目。
IBaseFilter 方法 描述
FindPin 检索具有指定标识符的引脚。

注解

若要实现输出引脚,请执行以下操作:

若要实现筛选器,请执行以下操作:

  • CSource 派生类。
  • 在构造函数中,创建派生自 CSourceStream 的一个或多个输出引脚。 引脚在其构造函数方法中自动将其添加到筛选器中,并在析构函数方法中删除自己。

若要在多个线程之间同步筛选器状态,请调用 CSource::p StateLock 方法。 此方法返回指向筛选器状态关键部分的指针。 使用 CAutoLock 类保存关键部分。 从引脚中,可以从引脚的 CBasePin::m_pFilter 成员变量访问 pStateLock,如下所示:

CAutoLock lock(m_pFilter->pStateLock());

要求

要求 Value
标头
Source.h (包括 Streams.h)

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

另请参阅

编写源筛选器