欢迎来到天天文库
浏览记录
ID:35941601
大小:207.50 KB
页数:11页
时间:2019-04-26
《c++builder基础6》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库。
1、实用文案文件系统驱动编程基础篇之6——DirectShow关键字:文件系统驱动编程,DirectShow作者:wskjuf 更新:2008-10-0622:14:09 浏览:2466文件系统驱动编程基础篇之六——DirectShow一、前略本系列文章为业余编程爱好者而写,仅仅作为初学者的一个借鉴,真正的精华存在于参考资料*中。知识的积累将经历从薄到厚,再从厚到薄的反复过程,为了打下牢固的基础,请读者务必在阅读本文的基础上花费必要的时间完成参考资料。参考资料*:1.《ProgrammingMicrosoftDirectShowforDigitalVi
2、deoandTelevision》及其示例代码2.《DirectShowforDirectX8.1SDKC++》3.MicrosoftWindowsSoftwareDevelopmentKitUpdateforWindowsVista之相关文档及其示例代码4.《DirectShow开发快速入门之慨述》5.《深入解析ATL(ATLInternalsSecondEdition——WorkingwithATL8)》6.《COM组件设计与应用(一)起源及复合文件》(http://www.vckbase.com/document/viewdoc/?id=1483
3、)阅读基础:少量的COM编程的基础知识,了解如何调用COM组件的方法,最好掌握哪怕一丁点的ATL。本章目的:了解DirectX组件架构,学习编写简单的DirectShow程序。二、DirectX与DirectShow 首先看下面两段关于DirectX和DirectShow相关内容的摘要:DirectX的第一个版本作为WindowsGamesSDK发布于1995年9月,它作为WindowsAPI的一部分用以替换Windows3.1中的DCI和WinGAPI。ATI的一个开发团队为微软带来了基本的游戏影像技术,微软方面,DirectX由专门的团队负责
4、开发,Eisler标准文档实用文案为团队领导,而St.John和Engstrom则成为主程序设计师。2005年4月,DirectShow从DirectX移除,加入到MicrosoftPlatformSDK。 Windows系统的架构下,我们不能如Dos般随心所欲的控制硬件,而希望游戏、影像开发人员对内核的理解都达到驱动编程人员的水平,是一件苛求的事情,但是为此将失去广大市场的关键问题必然要产生解决的办法,因此,DirectX或其他不同名的相同技术的出现是件必然的。 有些读者可能会对驱动编程的基础文章涉及DirectX的必要性有所疑问,确实,
5、DirectX并不是学习驱动编程的一个障碍,笔者在初次的学习中也从未意识过要了解这方面的内容。但是换一个角度,如果你看到鸡窝里的五个鸡蛋,我们是不是很有理由猜测这是由五只母鸡组成的五好家庭?因此我们可很牵强的认为DirectX如同内核的外部据点,如果我们拔除了,必然有更大的把握向内核发动总攻。 笔者把DirectX加入本系列文章的另一个重要原因是——DirectX确实有值得炫耀的资本。对于编程人员来说,它的COM接口简直可用“优雅”来评价,当你用着如苦瓜般的IMarshal接口时,不妨来看看什么样的接口值得这样的评价。我挑选了DirectX里一个
6、很有意思的部分——DirecShow来作为突破口,讲述如何“Direct”——直接的控制视频设备。 学习的进阶大略上可分为四个部分:学习调用组件、捕获和编辑影像、学习编写过滤器、掌握媒体格式的高阶部分。限于能力,只介绍前两个部分。读者不要满足于学会使用DirctShow,而是通过DirctShow的具体功能猜测系统驱动的功能,甚至设备的构成,减轻将来主攻驱动时的负担,此即由外而内的学习方法。 笔者将掠人之美,使用参考资料1提供的示例阐明编程的基本思路。三、DirectShow基础和GraphEdit 在Windows系统中,Direc
7、tShow以COM组件的形式存在,下图描绘了DirectShow组件、硬件以及系统组件的关系(Leagcy为传统或遗留,旧的之意)。标准文档实用文案 现在我们只需了解DirectShow里包含了两大类型的对象:三类“Filter”(源、转换、渲染过滤器),以及由这些过滤器集组成提供特定功能的“FilterGraph”,这个Graph不妨看成是包含Filter的一个容器。 为了从可视化的角度理解DirectShow工作的方式,我们可使用SDK附带的GraphEdit工具。它最基本的功能是利用系统里已经安装的解码器,使用DirectShow组件
8、来播放媒体文件,并直观的显示播放流程。下面演示一下如何播放一个媒体文件。 GraphEd
此文档下载收益归作者所有