0

如何重新连接过滤器引脚?

我创建了一个调整大小过滤器 (c++) 并添加了一个带有选项 Pal(720X576) 和 Ntsc(720X480) 的属性页。(默认为 Pal)。

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

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

4

1 回答 1

0

当图形停止时,您可以按照构建图形的相同方式重新连接引脚:使用IGraphBuilder::Disconnect, IGraphBuilder::Connect。您不能从Transform方法中执行此操作,因为停止的图形尚未调用它。

当图表运行时,您可以尝试动态重新同意媒体类型连接,这不能保证有效。请参阅动态格式更改

当过滤器切换媒体类型时,称为动态格式更改。如果您正在编写 DirectShow 过滤器,您应该了解动态格式更改的机制。即使您的过滤器不支持此类更改,如果另一个过滤器请求新格式,它也应该正确响应。

于 2013-01-28T08:03:02.687 回答