Filter的连接
Filter上的连接其实就是Filter上Pin的连接,而Pin上的连接其实就是OutputPin于InputPin它们俩之间商量着怎么采用连接时媒体类型的问题。这是一个协商的过程。(为了我们能够学好,学通DirectShow)下面我们来分析一下SDK基类的源代码。
在分析SDK基类的源代码之前让我们来看看一下实际连接的过程。
注意:Pin也是一种COM接口,那么怎么让它工作呢,呵呵前辈已经为我们做好了,每个Pin上现在都实现了IPin接口,我们就可以象一个平常的类指针一样调用它了。
好了,大家来看看连接的大体步骤:
1. Filter Graph Manager 调用输出Pin上的IPin::Cinnect
2. 如果输出的那边同意,那Filter Graph Manager就调用输入的IPin::ReceiveConnection
3. 如果输入的也同意那么连接就成功了.
总结一下: Filter Graph Manager就是中介,而输入,输出IPin就是一个租房子,一个找房子.中介结合双方的意见,调节.看看能不能达成共识.它赚得中介费.其实就这样!
本文详细解析了DirectShow中Filter的连接机制,介绍了Pin作为COM接口如何实现IPin接口完成连接过程,包括输出Pin和输入Pin之间的媒体类型协商流程。
607

被折叠的 条评论
为什么被折叠?



