DirectShow 构建图形过滤(Filter)管理器
2021-02-24
293
6
从图形过滤(Filter)管理器的介绍一节可知,它是DirectShow的控制中心,它控制Filter的运行。DirectShow 提供了可用于构建过滤器图的几个组件。
Filter Graph Manager
Filter Graph Manager此对象控制过滤器图形。它支持IGraphBuilder、IMediaControl和IMediaEventEx接口等。所有DirectShow应用程序都会在某些时候使用此对象,但在某些情况下,另一个对象会为应用程序创建过滤器图形管理器。
IGraphBuilder* pIGB;
HRESULT hr = CoCreateInstance(CLSID_FilterGraph,
NULL, CLSCTX_INPROC_SERVER, IID_IGraphBuilder,
(void **)&pIGB);
Filter Graph Manager 支持以下图形生成方法:
- IFilterGraph::ConnectDirect :尝试在两个引脚之间建立直接连接。如果管脚无法连接,该方法将失败。
- IGraphBuilder::Connect :连接两个引脚。如果可能的话,可以直接连接。否则,它将使用中间过滤器来完成连接。
- IGraphBuilder::Render :一个输出管脚开始构建图形的其余部分。此方法根据需要添加过滤器,在下游工作,直到到达渲染器过滤器。
- IGraphBuilder::RenderFile:构建一个完整的文件回放图( file-playback graph)。
- IFilterGraph::AddFilter :向图形添加筛选器。它不连接过滤器。必须在调用此方法之前创建筛选器,但得在调用CoCreateInstance或使用筛选器映射器或系统设备枚举器之后。
Capture Graph Builder
此对象提供用于构建过滤器图的其他方法。它最初是为构建执行视频捕获的图形而设计的(因此得名),但对于许多其他类型的自定义过滤器图形非常有用。它支持ICaptureGraphBuilder2接口
Filter Mapper and System Device Enumerator.
这些对象定位在用户系统上注册的过滤器,或表示硬件设备的过滤器。
DVD Graph Builder
此对象为DVD playback and navigation。它支持IDvdGraphBuilder接口。
HID人机交互QQ群:564808376
UAC音频QQ群:218581009
UVC相机QQ群:331552032
BOT&UASP大容量存储QQ群:258159197
STC-USB单片机QQ群:315457461
USB技术交流QQ群2:580684376
USB技术交流QQ群:952873936