叉直接显示三通过滤器

Fork Direct Show Tee Filter

本文关键字:三通 过滤器 显示      更新时间:2023-10-16

我需要一个'Infinite Pin Tee filter',它允许启用/禁用特定引脚实例的交付。

首先,我想以Windows SDK中的"infinite Pin Tee Filter"示例为基点,并从这个基础开始分叉代码。但是这迫使我复制了很多"不必要的"代码。

另一个选项是从Direct show Pin Tee filter继承的,只覆盖必要的方法。

  • 为pin添加新属性"IsEnabled"。
  • 覆盖接收(IMediaSample *pSample)来检查新的"IsEnabled"属性。写一个与filter交互的接口

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

InfTee Filter Sample看起来并不过于复杂,是一个很好的起点。您提到的另一个选项不包括"流结束"交付场景,特定于停止到暂停转换,试图避免不必要的数据复制。试图修补这些,你最终会得到与InfTee样例相当的代码。

你的另一个真正的替代选择是建立一个非常简单的"一进一出"过滤器,它提供或不媒体样本取决于它的IsEnabled属性。这允许您按原样使用stock InfTee,并在其输出中添加您自己的阻塞过滤器的几个实例,以实现数据分割逻辑。