gpt4 book ai didi

c# - DirectShow:图形在 GraphEdit 中工作,而不是在代码中工作

转载 作者:太空狗 更新时间:2023-10-29 22:53:52 31 4
gpt4 key购买 nike

我在 GraphEdit 中构建了以下图形:Logitech Webcam -> Infinite Tee Pin Filter -> VideoRenderer。这工作正常(GraphEdit 自动在 TEe 过滤器和 VideoRenderer 过滤器之间插入一些中间过滤器)。

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

有什么想法吗?

最佳答案

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

关于c# - DirectShow:图形在 GraphEdit 中工作,而不是在代码中工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/396622/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com