DirectShow体系结构 之 基本原理

    DirectShow是一个开放性的应用框架,也是一套基于COM的编程接口。下图是DirectShow框架关系图,它展示了应用程序、DirectShow组件和DirectShow支持的软硬件之间的关系。DirectShow的Filter与各种设备进行通信并对它们进行相应的控制,这些设备包括本地文件系统、电视卡、视频采集卡、VFW编解码器、显示器和声卡。通过这种方式,DirectShow成功的隔离了应用程序和各种复杂设备。除此之外,DirectShow还会为某些视频格式提供压缩Filter和解压缩Filter。


   DirectShow使用一种交Filter Graph的模型来管理整个数据流的处理过程;参与数据处理的各个功能模块叫做Filter;各个Filter在Filter Graph中按一定的顺序连接成一条"流水线"协同工作。Filter,它是最基本的软件构件,过滤器通常在多媒体流中执行一个操作。各个Filter在Filter Graph中按一定的顺序连接成一条"流水线"协同工作。如果用图论的术语描述,过滤器图是一个有向、无环、非连通图。有向是因为数据在过滤器之间以预定的方向流动;无环是指没有路径可以从一个过滤器出发又返回到它自身;而非连通是指不是所有的过滤器都可以达到所有其他过滤器。