VC-DShow的智能连接过程如何指定的某个特定filter?

VC-DShow的智能连接过程如何指定的某个特定filter?

泛泛之交 发布于 2017-05-09 字数 291 浏览 1029 回复 2

在DShow的程序中,两个filter或者一个filter的pin接口是可以进行自动进行中间filter的查找和连接的,这样的好处是能适应不同系统上的情况,不用考虑指定的filter是否存在的问题,减轻了开发的工作量。但是有时候我们也需要让智能连接过程收到一定的控制,比如指定使用某一个filter,应该怎么处理这种情况?

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

泛泛之交 2017-09-02 2 楼

有两种方法可以实现,在调用IGraphBuilder的Render或者Connect前:

将该filter实例化,创建后的实例指针通过IFilterGraph::AddFilter加入到Filter Graph Manager中。
获取Filter Graph Manager的IGraphConfig接口,调用其方法AddFilterToCache,把Filter加入到Filter Graph Manager的内部缓冲中,这样就能获得比方法1更高的优先级。

灵芸 2017-08-23 1 楼

这个东西十年前做过,有点印象,通过pin应该是可以枚举的。因为每个filter
本身是com对象,是不是根据对象id或者别名可以指定呢?