重新连接Directshow过滤器引脚

时间:2013-01-28 06:55:41

标签: visual-c++ directshow graphedit

如何重新连接过滤针?

我创建了一个缩放器过滤器(c ++)并添加了一个属性页,其中包含选项Pal(720X576)和Ntsc(720X480)。(默认为Pal)。

在图形编辑中,我选择了一个视频文件并添加了我的缩放器滤镜,当我播放图表时它工作正常并在Pal中显示视频。 当我试图将其更改为Ntsc时,它无法正常工作。 为了使其正常工作,我需要首先断开Resizer过滤器引脚,然后更改输出设置,然后重新连接。(我手动完成,视频以Ntsc模式播放。)

是否可以在Transform()中重新连接过滤器或任何其他更好的建议。 请建议/指点我的仪式方向。

1 个答案:

答案 0 :(得分:0)

图表停止后,您可以像制作图表一样重新连接图钉:使用IGraphBuilder::DisconnectIGraphBuilder::Connect。您无法从Transform方法执行此操作,因为已停止的图形尚未调用它。

当图表运行时,您可以尝试动态重新同意媒体类型连接,但不保证可以正常工作。见Dynamic Format Changes

  

当过滤器切换媒体类型时,它被称为动态格式   更改。如果您正在编写DirectShow过滤器,您应该知道   动态格式变化的机制。即使您的过滤器确实如此   如果不支持此类更改,则应该正确响应   过滤器请求新格式。