仿照Bouncing Ball写了个推模式的Source Filter,却找不到输出Pin,急啊,陆老师和各位帮忙啊,多谢了!
gaofg 2005-08-23 02:57:50 我按照DirectShow中的例子Bouncing Ball,自己实现了一个推模式的Source Filter,接收来自网络的数据并一帧一帧传给下级解码器。在Graph Edit中试验正常,可以成功的建立链路并显示出图像来。但实用程序实现时,遇到下面的问题。
创建Filter:
hr = CoCreateInstance(CLSID_MPEG4Receiver, NULL, CLSCTX_INPROC_SERVER,
IID_IBaseFilter, (void **)&m_pRecvFilter);
再执行:
m_pRecvFilter->FindPin(L"Out", &pPinDout);
结果pPinDout总为空。取不到输出Pin,后续的工作就不能进行了。
我开始以为是Debug版本的原因,但编译成Release版也是一样。而且那个例子Bouncing Ball也是一样。我采用同样的方式创建一个Bouncing Ball的Filter再通过FindPin获取输出Pin,结果也为空。
采用陆老师书上的根据友好名枚举绑定的方法创建这两个Filter也是找不到输出Pin。但是采用后面这种方法创建一个ffdshow的Filter,就可以找到。
是不是Filter写的有问题啊?
项目紧,急啊。请各位赐教。多谢了!