DirectShow技术简介

1 DirecX介绍

DirectX软件开发包是微软公司提供程序员的一套在Windows操作平台上开发高性能图形、声音、输入、输出和网络游戏的编程接口。微软将DirectX定义为“硬件设备无关性”,即使用DirectX可以用于设备无关的方法提供设备相关的(高)性能。DirectX标准的建立,可以为硬件开发提供策略,硬件厂商不得不按照这一标准进行产品改进,同时,通过使用DirectX所提供的接口,开发人员可以尽情地利用硬件可能带来的高性能,而无需关系硬件的具体执行细节。

DirectX采用了COM(组件对象模型)标准,因此不同对象的版本可以有不同的接口,这使用DirectX开发的程序即使在未来也能得到完全的兼容和支持。

DirectX是一个庞大的大家族,包含了以下的成员:

DirectX Graphics:集成了以前的DirectDrawDirect3D技术;

DirectInput:主要支持输入服务(包括鼠标、键盘等),同时支持输出设置;

DirectPlay:主要提供多人网络游戏的通信、组织功能;

DirectSetup:主要提供自动安装DirectX组件的API功能;

DirectMusic:主要支持MIDI音乐合成和播放的功能;

DirectSound:主要提供音频捕捉、回放、音效处理、硬件加速、直接设备访问等功能;

DirectShow:下面具体介绍;

DirecX Media ObjectsDirectShow Filter的简化模型,提供更方便的流数据处理方案。从DirectX 8.1版本中的DirectShow中分离出来,成为另一种高效率的流数据处理解决方案。

2 DirectShow简介

              DirectShowDirectX家族成员中为在Windows平台上处理各种格式的多媒体文件的回放、音视频采集等高性能要求的多媒体应用提供了完整的解决方案;DirectShow集成了DirectX家族中其他成员(如DirectDrawDirectSound等)的技术,为我们的多媒体应用提供了一下的方便:

              1)、保证了数据量巨大的多媒体应用数据处理的高效性;

              2)、解决了音频和视频时刻保持同步;

              3)、用最简单的方法处理复杂的多媒体源问题,包括本地文件、计算机网络、广播电视以及其他一些数码产品等;

              4)、提供了解决处理各种多媒体格式文件的方法;

              5)、支持目标系统中不可预知的硬件变动。

              DirectShow使应用程序开发人员从复杂的数据传输、硬件差异、同步性等工作解脱出来,总体应用框架和底层工作由DirectShow来完成。

3 DirectShow系统

Figure 1 DirectShow系统

如图所示,图中央最大的一块即是DirectShow系统,虚线以下是Ring 0特权级别的硬件设备,虚线以上的是Ring 3特权级别的应用层。DirectShow系统位于应用层中。它使用一种叫Filter Graph的模型来管理整个数据流的处理过程;参与数据处理的各个功能模块称为Filter;各个FilterFilter Graph中按一定的顺序连接成一条“流水线”协同工作。

从这里可以看出,其实一个个的filter就是一个个的组件,也可以称为node,作为一个独立完成某个工作的模块。

 

Filter

FilterDirectShow中最基本的概念,是Filter Graph中最小的功能模块,Filter是一种COM组件,一个Filter一般由一个或多个Pin组成,Filter之间也就通过Pin相互连接,构成一条顺序的链路。按照功能来分:Filter大致分为3类:Source FiltersTransform FiltersRendering FiltersSource Filters主要负责获取数据,数据源可以是文件、因特网计算机里的采集卡(WDM驱动的或VFW驱动的)数字摄像机等,然后将数据往下传输;Transform Filters主要负责数据的格式转换,例如数据流的分离/合成、解码/编码等,然后将数据继续往下传输;Rendering Filters主要负责数据的最终去向——将数据送给显卡、声卡进行多媒体的播放,或者输出到文件进行存储。

 

Filter Graph

Filter GraphDirectShow系统用来管理Filter的(管理者叫做Filter Graph Manager),Filter Graph可以理解是Filter的“容器”,将需要的各个Filter集合在一起实现统一操作。Filter也只有入到Filter Graph并且接入到工作链路中才能发挥作用。

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值