网站大量收购闲置独家精品文档,联系QQ:2885784924

vc++关于视频捕捉..doc

  1. 1、本文档共36页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
vc关于视频捕捉.

1关于视频捕捉(about video capture in dshow) 1视频捕捉graph的构建 一个能够捕捉音频或者视频的graph图都称之为捕捉graph图。捕捉graph图比一般的文件回放graph图要复杂许多,dshow提供了一个capture graph builder com组件使得捕捉graph图的生成更加简单。capture graph builder提供了一个icapturegraphbuilder2接口,这个接口提供了一些方法用来构建和控制捕捉graph。 首先创建一个capture graph builder对象和一个graph manger对象,然后用filter graph manager 作参数,调用icapturegraphbuilder2::setfiltergraph来初始化capture graph builder。看下面的代码把 hresult initcapturegraphbuilder( igraphbuilder **ppgraph, // receives the pointer. icapturegraphbuilder2 **ppbuild // receives the pointer. ) { if (!ppgraph || !ppbuild) { return e_pointer; } igraphbuilder *pgraph = null; icapturegraphbuilder2 *pbuild = null; // create the capture graph builder. hresult hr = cocreateinstance(clsid_capturegraphbuilder2, null, clsctx_inproc_server, iid_icapturegraphbuilder2, (void**)pgraph); if (succeeded(hr)) { // create the filter graph manager. hr = cocreateinstance(clsid_filtergraph, 0, clsctx_inproc_server, iid_igraphbuilder, (void**)pgraph); if (succeeded(hr)) { // initialize the capture graph builder. pbuild-setfiltergraph(pgraph); // return both interface pointers to the caller. *ppbuild = pbuild; *ppgraph = pgraph; // the caller must release both interfaces. return s_ok; } else { pbuild-release(); } } return hr; // failed } 2视频捕捉的设备 现在许多新的视频捕捉设备都采用的是wdm驱动方法,在wdm机制中,微软提供了一个独立于硬件设备的驱动,称为类驱动程序。驱动程序的供应商提供的驱动程序称为minidrivers。minidrivers提供了直接和硬件打交道的函数,在这些函数中调用了类驱动。 在directshow的filter图表中,任何一个wdm捕捉设备都是做为一个wdm video capture 过滤器(filter)出现。wdm video capture过滤器根据驱动程序的特征构建自己的filter 下面是陆其明的一篇有关于dshow和硬件的文章,可以拿来参考一下 //陆文章开始 大家知道,为了提高系统的稳定性,windows操作系统对硬件操作进行了隔离;应用程序一般不能直接访问硬件。directshow filter工作在用户模式(user mode,操作系统特权级别为ring 3),而硬件工作在内核模式(kernel mode,操作系统特权级别为ring 0),那么它们之间怎么协同工作呢? directshow解决的方法是,为这些硬件设计包装filter;这种filter能够工作在用户模式下,外观、控制方法跟普通filter一样,而包装filter内部完成与硬件驱动程序的交互。这样的设计,使得编写directshow应用程序的开发人员,从为支持硬件而需做出的特殊处理中解脱出来。directshow已经集成的包装filter,包括audio capture filter(q

文档评论(0)

gangshou + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档