CBaseOutputPin 类

cbaseoutputpin class hierarchy

CBaseOutputPin 类是实现输出引脚的抽象基类。

此类派生自 CBasePin。 它与 CBasePin 在以下方面不同:

  • 它仅连接到支持 IMemInputPin 接口的输入引脚。
  • 它支持通过 IMemAllocator 接口进行本地内存传输。
  • 它拒绝流结束、刷新和新段通知。 (这些不应发送到输出 pin.)
  • 它提供用于向下游传送样本的方法。

引脚连接时,它会从输入引脚请求内存分配器。 如果失败,它将创建一个新的分配器对象。 输出引脚负责设置分配器属性。 它通过纯虚拟方法 CBaseOutputPin::D ecideBufferSize 执行此操作。 在派生类中重写此方法。 如果输入引脚具有任何缓冲区要求,则会将它们传递给 DecideBufferSize 方法。

调用 CBaseOutputPin::GetDeliveryBuffer 方法以获取空媒体示例。 调用 CBaseOutputPin::D传送 下游示例。

派生类必须重写纯虚拟 CBasePin::CheckMediaType 方法,以在固定连接期间验证媒体类型。

受保护的成员变量 说明
m_pAllocator 指向内存分配器的指针。
m_pInputPin 指向连接到此引脚的输入引脚的指针。
公共方法 说明
CBaseOutputPin 构造函数方法。
CompleteConnect 完成与输入引脚的连接。 虚拟。
DecideAllocator 选择内存分配器。 虚拟。
GetDeliveryBuffer 检索包含空缓冲区的媒体示例。 虚拟。
传送 将媒体示例传送到连接的输入引脚。 虚拟。
InitAllocator 创建内存分配器。 虚拟。
CheckConnect 确定引脚连接是否合适。
BreakConnect 从连接释放引脚。
活动 通知引脚筛选器现已处于活动状态。
非活动 通知引脚筛选器不再处于活动状态。
DeliverEndOfStream 将流结束通知传送到连接的输入引脚。虚拟。
DeliverBeginFlush 请求连接的输入引脚以开始刷新操作。 虚拟。
DeliverEndFlush 请求连接的输入引脚以结束刷新操作。 虚拟。
DeliverNewSegment 将新段通知传送到连接的输入引脚。 虚拟。
纯虚拟方法 说明
DecideBufferSize 设置缓冲区要求。
IPin 方法 说明
BeginFlush 开始刷新操作。
EndFlush 结束刷新操作。
EndOfStream 通知引脚不需要其他数据。

要求

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

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