Filter是DirectShow最基本的概念。DirectShow使用Filter Graph来管理Filter,Filter Graph是Filter的容器,而Filter是Filter Graph中的最小功能模块。Filter按照功能来分,大致分为三类:Source Filters、Transform Filters和Renderer Filters。Source Filter主要负责取得数据,数据源可以是文件,因特网里的采集卡、数字摄像机等,然后将数据往下传输;Transform Filters主要负责数据的格式转换、传输;Render Filters主要负责数据的最终去向,我们可以将数据送给声卡、显卡进行多媒体的演示,也可以输出到文件进行存储。值得注意的是,并不是每一个部分都只有一个Filter去完成功能,每个部分往往是协同工作的。除了系统提供的大量的Filter外,我们可以定制自己的Filter,以完成我们需要的功能。
每个Filter与一个或多个其他的Filter相连,其中的连接点也是一个COM对象,称作Pin。Filter使用Pin将数据从一个Filter转移到下一个。
Filter有三种可能的状态:运行、停止和暂停。Filter在运行状态时处理数据,停止状态时停止处理数据,暂停状态则是表示就绪,可以进入运行状态。除了极个别的情况,一个Filter Graph中的所有Filter通常都处于同一个状态下,并同时进行状态的改变。因此,Filter Graph的状态也可以被称为运行、停止、暂停。
参考:
https://www.yuque.com/docs/share/b28a6fba-4e41-4265-b01e-042390b6b5c4
本文介绍了DirectShow中的Filter概念,包括FilterGraph、Pin及其状态管理等内容。详细解释了SourceFilters、TransformFilters和RendererFilters的作用及工作原理。
3674

被折叠的 条评论
为什么被折叠?



