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。
版权所有,禁止转载. 如需转载,请先征得博主的同意,并且表明文章出处,否则按侵权处理.