directshow 推模式与拉模式的区别 2011.07.11

推数据模式和拉数据模式:推数据模式是指源过滤器通过自己的线程获得流数据,然后将数据递交到下一个过滤器,

而下一个过滤器处理完数据后又将数据递交到它的下一个过滤器。这要求在整个过滤器图中所有的过滤器都支持推数

据模式,数据流才能顺利的流动。  而拉数据模式是指源过滤器的下一个过滤器是一个获取流过滤器,就是说它是整

个数据流动的发起者,它要求源过滤器将数据流给它,然后它处理后再递交到下一层,后面的过滤器也是和推数据模

式的一样用推数据的方式工作。

 

 

其实两种工作模式的区别在于和源过滤器相连的那个过滤器能够支持什么方式。一般来说,对于实时的数据流采用推数

据的方式更好,但是在试验中,由于采用的是MPEG-1数据流,而标准的MPEG-1分解过滤器又不支持推数据模式,所以

试验采用了拉数据的工作方式,这也就是说MPEG-1分解过滤器实际上是整个数据流的发起者,他在需要数据的时候会

调用源过滤器中的Read方法。

你可能感兴趣的:(c/c++)