如何重新连接过滤针?
我创建了一个缩放器过滤器(c ++)并添加了一个属性页,其中包含选项Pal(720X576)和Ntsc(720X480)。(默认为Pal)。
在图形编辑中,我选择了一个视频文件并添加了我的缩放器滤镜,当我播放图表时它工作正常并在Pal中显示视频。 当我试图将其更改为Ntsc时,它无法正常工作。 为了使其正常工作,我需要首先断开Resizer过滤器引脚,然后更改输出设置,然后重新连接。(我手动完成,视频以Ntsc模式播放。)
是否可以在Transform()中重新连接过滤器或任何其他更好的建议。 请建议/指点我的仪式方向。
答案 0 :(得分:0)
图表停止后,您可以像制作图表一样重新连接图钉:使用IGraphBuilder::Disconnect
,IGraphBuilder::Connect
。您无法从Transform
方法执行此操作,因为已停止的图形尚未调用它。
当图表运行时,您可以尝试动态重新同意媒体类型连接,但不保证可以正常工作。见Dynamic Format Changes:
当过滤器切换媒体类型时,它被称为动态格式 更改。如果您正在编写DirectShow过滤器,您应该知道 动态格式变化的机制。即使您的过滤器确实如此 如果不支持此类更改,则应该正确响应 过滤器请求新格式。