DirectShow的概念
DirectShow GraphEdit(graphedt.exe)来进行分析:
在上图中可以直观的看到播放这个媒体文件的基本模块,七个模块按广度顺序:读文件模块, 解复用模块, 视频解码模块, 音频解码音频, 颜色空间转换模块,视频显示模块,
音频播放模块。
按照DirectShow的称呼, 一个模块叫做一个filter(过滤器),模块的输入输出口叫做pin(管脚), 有input pin 和output pin两种; 第一个filter叫做Source filter, 每种媒体最后一个filter叫做Sink filter, 如上图所示连成串的所有filter组成一个Graph, 媒体文件的数据就像流水一样在Graph中流动, 各个相关的filter各司其职, 最后我们就看到了视频,也听到了声音(松耦合、高内聚)。
功能模块与组件分析
DirectShow中和播放器有关的filter粗略的分为五类, 分别是Source filter, Demux fiter,
Decoder filter, Color Space converter filter, Render filter, 各类的filter的功能与作用简述如下:
Source filter:源过滤器, 它的作用是为下级的demux filter以包的形式源源不断的提