[与此页面关联的功能 DirectShow 是一项旧功能。 它已被 MediaPlayer、 IMFMediaEngine 和 媒体基金会中的音频/视频捕获取代。 这些功能已针对Windows 10和Windows 11进行了优化。 Microsoft 强烈建议新代码尽可能使用 MediaPlayer、 IMFMediaEngine 和 Media Foundation 中的音频/视频捕获 ,而不是 DirectShow。 如果可能,Microsoft 建议重写使用旧 API 的现有代码以使用新 API。]
类 CBaseInputPin 是用于实现输入引脚的抽象基类。 此类除了 CBasePin 提供的 IPin 接口支持外,还添加了对 IMemInputPin 接口的支持。
若要使用此类,请派生一个新类并至少重写以下方法:
- CBaseInputPin::BeginFlush
- CBaseInputPin::EndFlush
- CBaseInputPin::Receive
- CBasePin::CheckMediaType
- CBasePin::GetMediaType
根据引脚的功能,可能需要替代 或 CBasePin 中的其他CBaseInputPin方法。
| 受保护的成员变量 | 说明 |
|---|---|
| m_pAllocator | 指向内存分配器的指针。 |
| m_bReadOnly | 指示分配器是否生成只读媒体样本的标志。 |
| m_bFlushing | 指示引脚当前是否正在刷新的标志。 |
| m_SampleProps | 最新示例的属性。 |
| 公共方法 | 说明 |
| CBaseInputPin | 构造函数方法。 |
| ~CBaseInputPin | 析构函数方法。 |
| BreakConnect | 从连接中释放引脚。 |
| IsReadOnly | 查询分配器是否使用只读媒体示例。 |
| IsFlushing | 查询筛选器当前是否正在刷新。 |
| CheckStreaming | 确定引脚是否可以接受样本。 虚拟。 |
| PassNotify | 将质量控制消息传递给相应的对象。 |
| 非活动 | 通知引脚筛选器不再处于活动状态。 虚拟。 |
| SampleProps | 检索最新示例的属性。 |
| IPin 方法 | 说明 |
| BeginFlush | 开始刷新操作。 |
| EndFlush | 结束刷新操作。 |
| IMemInputPin 方法 | 说明 |
| GetAllocator | 检索此引脚建议的内存分配器。 |
| NotifyAllocator | 指定连接的分配器。 |
| GetAllocatorRequirements | 检索输入引脚请求的分配器属性。 |
| 接收 | 接收流中的下一个媒体示例。 |
| ReceiveMultiple | 接收流中的多个样本。 |
| ReceiveCanBlock | 确定是否阻止对 CBaseInputPin::Receive 方法的调用。 |
| IQualityControl 方法 | 说明 |
| 通知 | 接收质量控制消息。 |
要求
| 要求 | 值 |
|---|---|
| 标头 |
|
| 库 |
|