【问题标题】:Is it possible to have one application configure and manage a DirectShow filter but have the output pin bound to a different application?是否可以让一个应用程序配置和管理 DirectShow 过滤器,但将输出引脚绑定到不同的应用程序?
【发布时间】:2012-04-22 17:00:00
【问题描述】:

我是直接节目的新手,我想知道这是否可能(任何额外的帮助来寻找解决方案也很好,但我更担心这是否值得追求)。

我正在 C++ 中创建 DirectShow 源过滤器,并且我正在对其进行设计,以便将 FillBuffer 调用传递给 C# 应用程序。据我了解,C# 应用程序需要加载 DirectShow 过滤器(我计划使用 DirectShowNet 库),然后请求我创建的包含辅助方法的接口(以指定 FillBuffer 函数并配置媒体源)。这与DirectShowNet 站点上的 GSSF 示例非常相似。

但是,我想知道将过滤器加载到一个应用程序中的行为是否会阻止它在另一个应用程序中使用 - 或者如果过滤器加载到一个应用程序中,我对过滤器配置所做的更改是否不会反映不同的应用程序。

就像我说的那样,我对 COM 或 DirectShow 不太满意。

【问题讨论】:

    标签: c# c++ com directshow


    【解决方案1】:

    在应用程序中使用 DirectShow 过滤器意味着在此应用程序中构建图表。当您使用两个应用程序时,您将拥有两个图表,每个图表都有自己的过滤器实例。

    我不确定您是否可以在多个应用程序中使用一个图表。 GraphBuilder 工具能够连接到现有的图表,但这最初是出于调试原因而不是为了共享图表而实现的。

    如果您只想共享配置并且可以使用两个过滤器实例,您可以实现一个共享配置(注册表、序列化数据等)并让每个过滤器轮询配置更改。

    【讨论】:

    • 非常感谢。那是我的替代解决方案。感谢您的洞察力。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-01-24
    • 2010-09-30
    • 2021-04-18
    • 2020-08-21
    • 1970-01-01
    • 1970-01-01
    • 2011-05-24
    相关资源
    最近更新 更多