【问题标题】:Send message to property page from DirectShow filter从 DirectShow 过滤器向属性页发送消息
【发布时间】:2011-06-02 21:44:33
【问题描述】:

我编写了一个派生自 CTransInPlace 并实现单个属性页的 Directshow 过滤器。将数据从属性页传递到过滤器并将数据从过滤器拉到属性页效果很好(使用定义的接口),但我想从过滤器向属性页发送通知以表示发生了某些事情(在此情况下,均衡器中发生了削波)。

此时我遇到了麻烦,因为我没有从过滤器中引用属性页,并且属性页由 GraphEdit 实例化。

向属性页发送某种类型的消息或通知的最佳方式是什么?

【问题讨论】:

    标签: c++ directshow


    【解决方案1】:

    您可以在过滤器中实现回调函数。看看 samplegrabber 过滤器。有一个类似的情况:

    samplegrabber 过滤器实现了ISampleGrabber Interface,其中包括一个SetCallback 函数。需要接收回调的类,需要实现ISampleGrabberCB Interface。调用 SetCallback 时,您将指针传递给 ISampleGrabberCB 接口。现在,samplegrabber 过滤器可以在该接口中调用一个函数(BufferCB 或 SampleCB)。

    【讨论】:

    • 谢谢,这可能是比我最终得到的更好的方法。我在过滤器实现的接口中添加了一个 setter。这会设置一个指向属性页的指针,并允许过滤器调用属性页的公共方法之一。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-05-10
    • 1970-01-01
    • 1970-01-01
    • 2016-12-01
    • 1970-01-01
    相关资源
    最近更新 更多