概览
下面的图表展示了Media Foundation架构的一个上层视图:
如上所示,Media Foundation提供了2种编程模型:
第一种,Media Pipeline模式。
如图表左边部分所示,使用一个端到端Pipeline,类似DShow中使用GraphBuilder、Filter的模式。
第二种:Souce Reader & Sink Writer模式。
如图表右边部分所示,这种模式提供了一种可选的方式使用Media Foudation组件(Media Soueces、MFTs、Media Sinks)。Source Reader使用一个Media Source和0个或更多decoders,Sink Writer使用Media Sink和0个或更多encoders。我们能使用Source Reader从一个Media Source获取压缩或非压缩数据,和使用Sink Writer编码数据并将数据传给Media Sink。注意,Source Reader和Sink Writer只在Win7上可用,因此这种模式也只在Win7上可用。
(一)Media Pipeline
Media Sources:类似DShow中的Source Filters;
Media Foundation Transforms(MFTs):类似DShow中的Transform Filters;
Media Sink:类似DShow中的Renderer;
Media Session:控制贯穿Pipeline的数据流动,和处理任务(例如:质量控制、视音频同步、响应格式改变)。类似DShow中的GraphBuilder。