Filter Graph的创建,IFilterGraph2, IGraphBuilder, IcaptureGraphBuiler2的区别

操作filter之前,肯定要创建filter graph。几乎所有的介绍directshow的书和例子都用了 IGraphBuilder, IcaptureGraphBuiler2
这两个接口,当然IFilterGraph也有,少用。
 
             这三者有什么区别?
 
          【1】IFilterGraph2,IcaptureGraphBuiler2这两个filter的CLSID是不一样的。IFilterGraph2,IGraphBuilder是一样 的。
                  IFilterGraph2,IGraphBuilder注册在CLSID_FilterGraph下,IcaptureGraphBuiler2注册在CLSID_CaptureGraphBuilder2下。
          【2】对于IFilterGraph2来说,还有一个IFilterGraph,IFilterGraph3.
                  他们的继承关系为:
                  IFilterGraph——>IGraphBuilder——>IFilterGraph2——>IFilterGraph3
                      一般使用IGraphBuilder比较多
         【3】如果我们仅仅是显示预览UVC,可以只使用IFilterGraph2,通过pFilterGraph2->AddSourceFilterForMoniker(),
               用Moniker指针将filter添加到graph,则不必创建IcaptureGraphBuiler2这个接口。
         【4】IcaptureGraphBuiler2是一个专门用来进行视频,音频捕捉的增强型接口;如果要特别的编解码,用它就很方便。
                  但为什么一般创建了IcaptureGraphBuiler2,还要创建IGraphBuilder呢?
                  这是因为我们在预览视频时处理播放,暂停,停止这些动作,需要用到IGraphBuilder,而这些功能IcaptureGraphBuiler2
                 是没有的,所以需要而这协调处理。
                  IcaptureGraphBuiler2创建后,要将IGraphBuilder的指针与他关联:

                 pCaptureGraphBuiler2->captureGraphBuiler2(pGraphBuilder).




http://blog.sina.com.cn/s/blog_60d57680010183kz.html

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值