gpt4 book ai didi

c++ - 为什么这个过滤器不起作用?

转载 作者:行者123 更新时间:2023-11-28 07:03:04 24 4
gpt4 key购买 nike

我正在编写一个使用 CBaseFilter 作为基类的过滤器。我正在努力使其能够将输入媒体样本转发到图中的输出 p。

我创建了两个引脚类,一个用于输出,一个用于输入。我通过 Receive 方法将输入引脚的数据转发到输出引脚,然后使用 Deliver 将数据转发到输出引脚。实际上会调用这些方法,因为每次调用这些方法时我都会写入日志文件条目。

然而,当我在 graphedt 中使用过滤器时,结果是在我停止图形之前没有数据写入文件。然后它总是向文件中写入 64KB 的内容。

生成的avi文件当然不能播放。

那么这64KB的数据是什么呢?除了 CBaseInputPin::Receive 和 CBaseOutputpin::deliver 之外,我是否必须定义其他方法才能使数据流正常工作?

最佳答案

为什么要使用 CBaseFilter?对于具有输入和输出的过滤器,有一个可用的 directshow 基类:CTransformFilter或者如果您只有一个输入和一个输出引脚 CTransInPlaceFilter .

还有一个 DirectShow 示例如何实现 CTransformFilter,即“EZRGB24 Filter Sample”。

我认为这64Kb的数据是Avi-Header,是你停图后写的。

关于c++ - 为什么这个过滤器不起作用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22150443/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com