DirectShow过滤器:转换

时间:2014-02-27 13:44:28

标签: c++ filter directshow

当其中一个输入引脚发送数据时,过滤器变换方法被调用是否正确?如果是:我如何在滤波器变换方法中确定它是哪个输入引脚?

2 个答案:

答案 0 :(得分:2)

TransformCTransformFilter类的方法。来自MSDN:

  

CTransformFilter类是实现转换过滤器的基类。该类用于实现具有一个输入引脚和一个输出引脚的变换滤波器

在单输入引脚滤波器上,该方法设计为不提供数据源的任何标识,因为首先有一个引脚可以来自数据。

通常,数据通过IMemInputPin::Receive方法进入输入引脚。如果在引脚类上覆盖它,则可以在将数据传递到过滤器类时附加标识源的信息。

答案 1 :(得分:1)

没有内置方法可以做到这一点。如果您的滤波器具有多个输入引脚,并且每个引脚提供不同的介质类型,则可以使用介质类型确定哪个引脚。另一种方法可能是为输入引脚的每个实例分配一个唯一的id,并将其传递给转换函数。您可能必须从基类派生输入引脚才能执行此操作。