directshow的push和pull mode

directshow中filter分为source filter,transform filter,render filter。

push和pull mode是相对于source filter来说的。

source filter在directshow扮演的角色是制造或者生产数据,这些数据在graph中被传送修改到最后被渲染。

那么这里有个问题,这些数据时怎么传给下面的filter?

是下面不管要不要,都直接传送下去呢?还是

等下面说,好了,现在给我数据吧,然后才传送下去呢?

在directshow中,这个问题的答案是2种都有,它们的名字就是push,pull mode。

push mode情况下,source filter自己有一个线程用来把数据推送给下级的filter,然后下级的filter处理数据并传给再下级的filter,直到到达render filter。


pull mode情况下,跟source filter直接相连的filter向source filter请求数据,然后再一级一级向下处理和传送数据。典型的pull mode的filter有avi spllitter filter。

版权所有,禁止转载. 如需转载,请先征得博主的同意,并且表明文章出处,否则按侵权处理.

    分享到:

留言

你的邮箱是保密的 必填的信息用*表示