如何在 EXE 中直接嵌入 DirectShow Push Source 过滤器?

2023-12-12

我有一个 Delphi 6 程序,它通过套接字从外部程序接收音频。现在,我想将该音频提供给我创建的 DirectShow 过滤器图表,该图表将该音频路由到 PC 上的不同输出过滤器。我正在使用 DSPACK 进行 DirectShow 过滤图工作。我将使用展示如何创建推送源过滤器的 DSPACK 示例之一作为我的起点。

是否可以将 DirectShow 过滤器直接嵌入到我的主 EXE 中,或者我是否必须创建外部 DLL 或 AX 文件并在其上运行 regsvr32?我想避免创建外部模块,否则我必须在它和我的主程序之间创建一个参数和数据传递桥,我宁愿消除这项工作。我想知道是否有一种方法可以简单地将推送源过滤器代码包含在我的主程序中,并巧妙地 Windows 将其作为 DirectShow 过滤器使用(如果可能的话)。


过滤器不必放入库 (DLL) 中,甚至不必是注册的 COM 对象,不是。如前所述,这样做的唯一原因是通过 CoCreateInstance 和/或通过 DirectShow 类别的枚举使过滤器可供应用程序使用。

直接放入您的应用程序中,它必须实现IBaseFilter而且你会IFilterGraph::AddFilter将其放入图表中。私有过滤器的一个优点是,您不需要通过 COM 接口实现应用程序和过滤器之间的通信,并且可以使用本机/直接指针。

另请参阅杰兰特的帖子无需注册即可使用过滤器.

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何在 EXE 中直接嵌入 DirectShow Push Source 过滤器? 的相关文章

  • “after_filter”如何/何时工作/运行?

    我正在使用 Ruby on Rails 3 1 我想知道 对于表现原因 无论是否after filter渲染视图文件后运行 也就是说 当用户访问我的应用程序 URL 时 他 她应该显示的相关视图文件先于渲染after filter运行或af
  • VCL.位图到 FMX.位图

    我在网上找到了这段代码 但 FMX Bitmap 没有扫描线 是否可以以某种方式将 VCL TBitmap 复制或绘制到 FMX Bitmap IFDEF MSWINDOWS type TBitmap FMX Types TBitmap T
  • 如何在 Vista 上安装 Delphi 7

    我多次尝试在 Vista 上安装 Delphi 7 但 Vista 告诉我此应用程序 Delphi 7 存在已知问题 从而阻止了我这样做 我公司的其他几个人在 Vista 上安装 D7 时遇到了问题 由此得出的结论是 我们的 D7 应用程序
  • 如何在Delphi XE中通过名称获取类类型引用?

    我实际上正在尝试使用 Rtti 来实现通用方法调用程序 它应该像这样工作 我将提供类名 方法名和参数 调用者将通过调用此类的指定方法来完成其工作 因此 我需要类引用才能获取其 Rtti 信息并寻找我想要调用的方法 有没有办法在不实现我想要使
  • 如何确保 FormClose 程序运行,无论程序如何退出?

    在 Delphi 7 中 我有一个 TMainForm FormClose 过程 旨在在程序退出时写出一些状态 这在手动关闭程序时效果很好 但是 我发现如果程序被 Windows 强制 退出 例如在 Windows 更新后需要重新启动 则不
  • 如何使用 R 中的 dplyr 包在列中保留具有相同值的行?

    我想知道如何使用过滤列中具有相同值的行dplyr包裹 我尝试做一些与本文中要求和建议相反的事情question https stackoverflow com questions 46906630 filtering rows where
  • 按值数组过滤对象数组中的嵌套数组

    考虑以下对象数组 guid j5Dc9Z courses id 1 name foo guid a5gdfS courses id 2 name bar
  • 运行delphi客户端自动化程序后excel.exe保持加载状态的原因是什么?

    我编写了一个 Delphi 程序 该程序从单个 XLS 文件的多个不同电子表格中提取数据并将其合并到文本文件中以供以后处理 这是德尔福7console程序 最相关的代码片段的摘录将向您表明 显然 我的程序表现得相当好 或者至少达到了它需要的
  • 确保适配器的内容不会从后台线程修改,而仅从 UI 线程修改

    我有一个带有 EditText 名为 filtro 和 ListView 名为 list view 的活动 当用户插入文本时 适配器应该刷新 如果我多次更改文本 则会发生崩溃 然后显示消息 确保适配器的内容不是从后台线程修改 而是仅从 UI
  • Async InputQuery 不处理“取消”按钮

    我正在使用一个简单的调用TDialogServiceAsync InputQuery 使用单个输入 它只是忽略了Cancel按钮和窗口的X关闭按钮 But the Ok按钮工作正常 这是我的代码 uses FMX DialogService
  • get-childItem 的新 -file 参数是像 -filter 一样快还是像 -include 一样慢?

    EDIT希望在这里澄清我的复杂和误导性问题 基于我错误的假设 file 接受输入 感谢您纠正我并指出这只是一个开关参数 我的示例中的输入实际上传递给 path 听起来这可能是搜索多种文件类型最快的纯 powershell 方式 因为 fil
  • 如何组合过滤条件

    过滤器类函数接受一个条件 a gt Bool 并在过滤时应用它 当您有多个条件时 使用过滤器的最佳方法是什么 使用了应用函数 liftA2 而不是 liftM2 因为出于某种原因我不明白 liftM2 在纯代码中如何工作 liftM2 组合
  • 我如何在Delphi中处理事件?

    例如 我有一个程序 在单击 Button1 后执行某些操作 如果没有 Button1Click 中的代码 如何处理按钮的 onclick 事件 我需要为 Button1 动态添加事件 unit Unit1 interface uses Wi
  • Delphi 返回 TList 时出错

    我做了一个非常简单的应用程序 但我有一个我真的无法理解的问题 看一下这个基本代码 unit Unit1 interface uses Winapi Windows Winapi Messages System SysUtils System
  • 如何在 Delphi DBLookupComboBox 中选择正确的项目

    我有一个数据库查找组合框连接到数据库查询 那部分工作正常 当我运行程序时数据库查找组合框填充有查询的结果 我想看看数据库查找组合框填充第一项 请选择 当 的时候程序第一次运行或者当一个新项目行动已启动 见下图 另外 如果我正在加载以前保存的
  • 如何创建一个多重过滤函数来过滤掉多个属性?

    我有一个要过滤的对象数组 name Apple age 24 model Android status Under development name Roboto age 24 model Apple status Running 我需要使
  • 为什么未初始化的指针会导致内存访问冲突接近 0?

    据说often 但并非总是如此 当你在接近于零的内存位置 比如 89 美元 获得 AV 时 你就有了一个未初始化的指针 但我也在 Delphi 书籍中看到了这一点 嗯 或者它们都是由同一作者写的 Update 引自 Bob Swart 等人
  • 如何更改 TPageControl 上标签的方向?

    我是 Delphi 的新手 再次强调 我在 1994 年就使用过 Delphi 我现在有 Delphi 2009 Pro 来自Java 我发现对象继承非常晦涩 我的用户想要选项卡位于左侧的选项卡式页面 但是 TPageControl 不允许
  • Delphi 5 中的 Oracle 数据库连接

    我正在使用 Delphi 5 版本 我想连接到 Oracle 数据库 我有 TDatabase 组件 我不知道如何通过 Delphi 连接到数据库 请提供连接数据库的步骤 谢谢 The TDatabase http docwiki emba
  • 在 Delphi 中编程延迟的最佳方法是什么?

    我正在开发的 Delphi 应用程序必须延迟一秒 有时甚至两秒 我想使用最佳实践来对此延迟进行编程 在阅读 stackoverflow 上有关 Delphi Sleep 方法的条目时 我发现了以下两条评论 我遵循这样的格言 如果你觉得需要使

随机推荐