3

我在 GraphEdit 中构建了以下图表:Logitech Webcam -> Infinite Tee Pin Filter -> VideoRenderer。这很好用(GraphEdit 会在 TEe 过滤器和 VideoRenderer 过滤器之间自动插入一些中间过滤器)。

我尝试在代码中做同样的事情,但在尝试将 Tee 过滤器连接到 VideoRenderer 时失败。我首先将网络摄像头连接到 tee 过滤器,它可以工作(网络摄像头打开并且我得到 S_OK),然后我尝试将 tee 过滤器的单个输出引脚连接到第一个,但失败了(错误是它可以找不到一组中间过滤器来连接它们)。我尝试将它们与 IGraphBuilder::Connect 以及 ICaptureGraphBuilder2::RenderStream 连接起来,效果相同。要枚举引脚,我使用 hr = _CaptureGraphBuilder.FindPin(theFilter, PinDirection.Input, null, null, true, 0, out thePin); 对于视频渲染器,除了 PinDirection.Output 用于 Tee 过滤器(这是在 C# 中,但构造完全映射到 C++)之外,其他相同。

有任何想法吗?

4

1 回答 1

2

发现了问题。显然,网络摄像头过滤器在图表启动之前不会正确更新其输出媒体类型。因此,启动图表,然后在一切完成后重新启动图表就可以了。

于 2008-12-29T05:34:58.000 回答