Fork Direct Show T恤过滤器

时间:2015-09-23 08:49:15

标签: c++ directshow

我需要一个' Infinite Pin Tee过滤器'允许启用/禁用传递到特定的pin实例。

首先,我选择了#34; Inifinite Pin Tee Filter"以Windows SDK为基点的示例,并开始从此基础分叉代码。 但这迫使我复制了很多不必要的"代码。

其他选项继承自Direct show Pin Tee过滤器,仅覆盖必要的方法。

  • 添加新属性" IsEnabled"别针。
  • 覆盖接收(IMediaSample * pSample)以检查新的" IsEnabled"属性。
  • 编写一个interfice来与filter进行交互。

这第二种选择真的可行吗? 除了代码重复之外,两种选择的优点和缺点是什么?

1 个答案:

答案 0 :(得分:2)

InfTee Filter Sample看起来并不复杂,是一个很好的起点。您提到的另一个选项不包括“流结束”传送的方案,停止到特定的暂停转换,尝试避免不必要的数据复制。试图修补那些最终会得到与InfTee样本相当的代码的代码。

另一个真正的替代选择是构建一个非常简单的“一进一出”过滤器,根据其IsEnabled属性提供或不传送媒体样本。这使您可以按原样使用库存InfTee,并将自己的阻塞过滤器的几个实例添加到其输出中,以实现数据切除逻辑。这两种方法都有意义。