我已经在GraphEdit中建立了以下图表:罗技网络摄像头->无限T形销过滤器-> VideoRenderer。这可以很好地工作( GraphEdit会在TEe过滤器和VideoRenderer过滤器之间自动插入一些中间过滤器)。
我试过在代码中做同样的事情,但在尝试将T形过滤器连接到VideoRenderer时失败。我首先将摄像头连接到tee过滤器,正常工作(摄像头打开并获得S_OK),然后我尝试将tee过滤器的单个输出引脚连接到第一个,但失败了(错误是它找不到一组中间过滤器来连接它们)。我尝试使用IGraphBuilder::Connect和ICaptureGraphBuilder2::RenderStream连接它们,效果相同。为了枚举引脚,我对视频渲染器使用hr = _CaptureGraphBuilder.FindPin(theFilter,PinDirection.Input,null,null,true,0,out thePin);,对Tee过滤器使用PinDirection.Output除外(这是在C#中,但构造完全映射到C++)。
有什么想法吗?
发布于 2008-12-29 05:34:58
找到了问题所在。显然,在图形启动之前,Webcam过滤器不会正确更新其输出媒体类型。因此,启动图表,然后在所有操作完成后重新启动图表就成功了。
https://stackoverflow.com/questions/396622
复制相似问题