【问题标题】:DirectShow - passing parameters to custom source push filterDirectShow - 将参数传递给自定义源推送过滤器
【发布时间】:2010-01-26 21:21:43
【问题描述】:

我正在研究一种解决方案,该解决方案将用于接收来自远程主机的视频流并在其顶部放置各种文本。目前,它由自定义 DirectShow 推送过滤器 (C++) 组成,该过滤器使用 RTP 协议从远程主机接收数据,以及设置 DirectShow 图形并用作视频容器的微型 C# 应用程序。我正在使用 DirectShowLib 互操作库。但是,我不确定如何将此 C# 应用程序中的参数传递给我的自定义过滤器。有哪些可能的方法?

【问题讨论】:

    标签: filter directshow


    【解决方案1】:

    最简单的方法是注册您自己的协议(在 HKCR 下创建一个密钥 myproto,然后在其下创建一个包含您的 clsid 的值“源过滤器”)。然后您可以渲染“myproto://ip=192.168.0.1&port=12&param1=x”并将这些传递给您的 IFileSourceFilter::Load 方法。

    G

    【讨论】:

    • 我看了一下文档,但没有 Open 方法。我假设您的意思是 IFileSourceFilter::Load 方法?我会在几个小时后开始玩这个,如果它有效,我会告诉你。谢谢!
    【解决方案2】:

    创建密钥:

    HKEY_CLASS_ROOT

    • 我的原型
      • “源过滤器”=“187463A0-5BB7-11D3-ACBE-0080C75E246E”

    在 Windows 7 上还不够。有两个问题:

    • 您需要用大括号将 CLSID 括起来
    • 您需要添加“网址协议”

    正确的版本是这样的:

    HKEY_CLASS_ROOT

    • 我的原型
      • “源过滤器”=“{187463A0-5BB7-11D3-ACBE-0080C75E246E}”
      • “网址协议”=“”

    另外,您可以查看HKEY_CLASS_ROOT->彩信以供参考。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-06-03
      • 2022-06-24
      • 2021-04-29
      • 1970-01-01
      • 2019-04-27
      • 2016-04-17
      • 2021-12-02
      相关资源
      最近更新 更多