Visual c++ 重新连接Directshow过滤器引脚

Visual c++ 重新连接Directshow过滤器引脚,visual-c++,directshow,graphedit,Visual C++,Directshow,Graphedit,如何重新连接过滤器引脚 我创建了一个resizer过滤器(c++),并添加了一个属性页,其中包含选项Pal(720X576)和Ntsc(720X480)。(默认为Pal) 在“图形编辑”中,我选择了一个视频文件,并将我的大小调整器过滤器添加到其中,当我播放图形时,它工作正常,并以Pal显示视频。 当我试图将其更改为Ntsc时,它无法正常工作。 要使其正常工作,我需要首先断开Resizer过滤器引脚,然后更改输出设置,然后重新连接。(我手动执行此操作,视频以Ntsc模式播放。) 是否可以在Tran

如何重新连接过滤器引脚

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

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

是否可以在Transform()或其他更好的建议中重新连接筛选器。
请给我指点方向

图形停止时,您可以使用与构建图形相同的方法重新连接管脚:使用
IGraphBuilder::Disconnect
IGraphBuilder::Connect
。您无法通过
Transform
方法执行此操作,因为停止的图形尚未调用它

当图形运行时,您可以尝试动态重新协商媒体类型连接,但这不能保证正常工作。见:

当过滤器切换媒体类型时,称为动态格式 改变如果您正在编写DirectShow筛选器,则应注意 动态格式更改的机制。即使你的过滤器有 如果不支持此类更改,则应正确响应其他更改 筛选器请求新格式


你的意思是我需要在我的过滤器源代码中使用IGraphBuilder连接、断开连接吗?请参阅上面的:“您不能从转换方法中执行此操作,因为…”