先看几个函数:
IFilterGraph::AddFilter:参数为一个Filter对象,将其加入到Filter Graph中
IFilterGraph::ConnectDirect:参数为一个输出Pin,一个出入Pin以及媒体类型,进行直接的链接
IGraphBuilder::AddSourceFilter:参数为源文件名,自动将一个Source Filter加入到Filter Graph中
IGraphBuilder::Connect:参数为输入Pin和输出Pin,如果连接失败,自动在中间加入必要的格式转化Filter
IGraphBuilder::Render:参数为输出Pin,自动加入必要的Filter完成剩下部分Filter Graph的构建
IGraphBuilder::RenderFile:参数提供源文件,自动加入必要的filter完成文件的回放
我们看到后四种均有"自动"一词,dshow中,这种功能叫做"智能连接"。
先来看一下Filter的Merit的值:
Merit可以理解为Filter被智能连接所使用的优先级:
enum {
MERIT_PREFERRED = 0X800000,
MERIT_NORMAL