基于Microsoft Direct Show的多媒体应用程序开发
Microsoft Direct Show是微软Windows平台中的SDK的重要组成部分,是一款新推出的基于Direct X和COM技术的多媒体应用程序软件开发包,可以很方便地开发出具备高性能和高质量要求的多媒体应用程序,是未来多媒体应用程序的开发方向。本文将从Direct Show的基本结构出发,分析和探讨Microsoft Direct Show的平台程序使用方法。
随着信息技术的高速发展,多媒体信息技术的问题也不断增多,数据处理的非即时性、视频音频的非同步性、流的来源和格式的多样性、用户终端硬件设备的非预见性等等都阻碍了多媒体应用技术的进一步发展,微软公司针对此情形基于Direct X、Direct Draw以及Direct Sound的技术而设计出的多媒体程序运用工具,这样开发者就不必考虑终端设备的不同和相对复杂的流数据格式,提供实现标准统一的高效接口。
1 Microsoft Direct Show的基本结构及原理
1.1 滤波器
Direct Show对于数据的处理的过程都是相对独立的,处理的过程工作都是不一样的。滤波器作为Direct Show最基本的构成元件,是完成这些过程的最基本的单元。在客户终端,应用程序的构成就是滤波器组合而成滤波器图。滤波器又分为源滤波器、变换滤波器和提交滤波器几大种类。源滤波器是滤波器图中处理输入数据的滤波器,将获得的原始数据进行简单处理之后交由下一道程序的滤波器;变化滤波器是滤波器处理的核心,将原始数据转码成多媒体数据,将所得的数据流分解成多个数据流;提交滤波器是滤波器图的最后环节,将处理后的数据输出给外部设备。
1.2 Pin
Pin是滤波器之间的相连接口,作为从I pin衍生出来的对象,滤波器可以创建或者Pin,对滤波器进行控制。Pin分为输入和输出两大类,对于任何两个相连的Pin,要求的种类必须是不相同的,输入的Pin只能与输出Pin相连接,而在相连的过程中,相连Pin的滤波器必须进行协商对传输的数据流进行统一。
1.3 多媒体数据样本和数据类型
当滤波器与滤波器之间相连的时候,必须要使用相同的数据类型以保证滤波器的连接传输数据的正确性,滤波器接收到上一级传输的数据是经过COM的封装了的,这样产生给的数据就成为了多媒体数据样本,当然,在具体的多媒体数据传输的时候,可能还需要加以时间戳使得处理的时间具有同步性。
1.4 时钟
在Direct Show的应用程序中,为了使得滤波器图具有同一性运转,需要为滤波器管理图提供统一的时钟用作参考,这样能使得对于数据流的输入和输出能够具有规范程序,同时在多媒体数据类型中使用的时间戳也是时钟作用的重要体现。
2 Microsoft Direct Show的多媒体应用程序的开发
2.1 COM Library的使用
在Direct Show Filter的存在形式中,COM成为了主导力量。在客户使用终端,使用Direct Show的应用程序必须要再使用开始的时候进行COM Library的初始化,这样可以将其数据植入到链接数据库和信息处理资源中,并能够保证在进行Direct Show应用程序调制完成之后能够释放数据库和信息处理资源中的数据。
2.2 创建Filter Graph
对于所有的Direct Show得使用都必须在Windows的环境下完成注册和登记,Direct Show对应的是滤波器的固有的属性,比如说像多媒体类型数据的支持和滤波器的种类属性等。Filter Graph生产制造者就是通过对前面所说的Windows注册表进行搜索从而获得滤波器的信息,并选择最合适的、最满足需要的滤波器创建Filter Graph。当然,由用户会存在创建Filter Graph不符合操作系统的担忧,其实完全没有必要,使用Direct Show创建Filter Graph可以不管系统使用的是那一种类的滤波器以及滤波器之间的数据连接的情形,而通过使用I Graph Builder创建函数,就可以产生给出完整的Filter Graph。I Graph Builder能够通过调用Add source Filter来检测文件的类型,从而进一步判定滤波器的种类,在确定滤波器类型之后,通过Enter Matching Filters搜索滤波器的输出类型进而确定和添加搜索的滤波器,接下来可以使用I Graph Builder将滤波器之间进行连接,并且在此基础上还可以进一步添加其他的滤波器,这样Filter Graph的建立就顺理成章了。
2.3 完善Direct Show的事件相应机制
在Direct Show的多媒体应用程序当中,Direct Show的事件响应机制是作为Filter Graph的管理者和用户终端进行交流连接的借口,Direct Show对于数据流的处理可以提前进行数据的预期活动进行预测,类似于像传输的数据流的传输是否有结束的问题能及时掌握,当然,对于可以预期出现的事故和错误也可以进行预测和控制。
2.4 滤波器的开发
Direct Show Filter的制作流程相对来说较为复杂,对于Direct Show而言,上文也提到过滤波器在其使用中的核心地位。Direct Show Filter实际上就相当于COM的开发形式和过程,在开发过程中尽量使用COM的规范操作流程,会相对更为规范,更容易被用户所接纳使用。
3 结语
综上而言, Direct Show的多媒体技术是可以进行迅速、稳定并具有高性能的多媒体应用程序的开发的重要方法和手段,因此,要注重Direct Show的多媒体应用程序开发技术的发展,充分发挥其在多媒体技术中作用。
作者简介
张俊(1984-),男,江苏省扬州市人,研究生学历,研究方向为数字媒体技术,影视后期制作,广播电视制作。
作者单位
江苏省扬州商务高等职业学校 江苏省扬州市 225009
上一篇:软件开发流程简析
下一篇:网络应用程序的开发与设计