为什么在注册过滤器时必须声明引脚?

时间:2014-02-27 18:25:21

标签: c++ directshow

注册直接显示过滤器时,您必须(或可以?)定义过滤器的所有引脚。 但您也可以在过滤器类中定义它们。 你为什么要两次这样做?这两种方式如何相互关联?

1 个答案:

答案 0 :(得分:2)

真实引脚是从CBasePin派生的那些类。它们实现引脚功能,它们的方法接收/发送数据,连接到其他引脚,通过它们自己的过滤器进行通信。

然后,注册相关的引脚结构(例如AMOVIESETUP_PIN)仅用于注册。它们与运行时过滤器操作无关,仅在图形构建阶段帮助查找过滤器。当注册过滤器时,它也会公布其功能和引脚上限。然后Intelligent Connect使用此信息在连接不直接连接的引脚时选择合适的滤波器。