[与此页面关联的功能(DirectShow)是一项旧功能。 它已被 MediaPlayer、IMFMediaEngine取代,并在媒体基金会 音频/视频捕获。 这些功能已针对 Windows 10 和 Windows 11 进行了优化。 Microsoft强烈建议新代码尽可能使用 MediaPlayer、IMFMediaEngine 和 Media Foundation 中的音频/视频捕获,而不是 DirectShow。 Microsoft建议重写使用旧 API 的现有代码,以尽可能使用新 API。]
本部分介绍 DirectShow 筛选器中的线程处理,以及避免在自定义筛选器中崩溃或死锁的步骤。
本节中的示例使用伪代码来说明需要编写的代码。 它们假定自定义筛选器使用派生自 DirectShow 基类的类,如下所示:
- CMyInputPin:派生自 CBaseInputPin。
- CMyOutputPin:派生自 CBaseOutputPin。
- CMyFilter:派生自 CBaseFilter。
- CMyInputAllocator:输入引脚的分配器,派生自 CMemAllocator。 并非每个筛选器都需要自定义分配器。 对于许多筛选器,CMemAllocator 类已足够。
本节包含以下主题。
- 流式处理和应用程序线程
- 暂停
- 接收和传送样本
- 传送流结束
- 刷新数据
- 停止
- 获取缓冲区
- 流式处理线程和 Filter Graph 管理器
- 筛选器线程 的 摘要
相关主题
-
适用于筛选器开发人员的 数据流