音频处理对象APO
+ -

APO音频处理象开发概述及对接口关系

2022-09-15 314 1

自定义音频处理对象APO的步骤:

  • 创建自定义 APO com 对象以提供所需的音频处理对象。
  • 创建用户界面以使用配置自定义 APO(可选)。
  • 创建 INF 文件以安装和注册 APO 和自定义用户界面。

APO 必须有一个输入和一个输出连接。这些连接是音频缓冲区,可以有多个通道。
APO 只能修改通过其IAudioProcessingObjectRT::APOProcess例程传递给它的音频数据。APO 无法更改基础逻辑设备的设置,包括其 KS 拓扑。

其APO COM对象结构如下:

APO COM对象结构

  • IAudioProcessingObject。处理初始化和格式协商等设置任务的接口。
  • IAudioProcessingObjectConfiguration。配置界面。
  • IAudioProcessingObjectRT。处理音频处理的实时接口。它可以从实时处理线程中调用。
  • IAudioSystemEffects。使音频引擎将 DLL 识别为系统效果 APO 的接口。

IAudioProcessingObject

IAudioProcessingObject

IAudioProcessingObjectRT

IAudioProcessingObjectRT

IAudioProcessingObjectConfiguration

IAudioProcessingObjectConfiguration

自定义APO

文件定义:

E:\Windows-driver-samples-master\Windows-driver-samples-master\audio\sysvad\APO\SwapAPO\SwapAPO.h

标例类定义如下:

class CSwapAPOMFX :
    public CComObjectRootEx<CComMultiThreadModel>,
    public CComCoClass<CSwapAPOMFX, &CLSID_SwapAPOMFX>,
    public CBaseAudioProcessingObject,
    public IMMNotificationClient,
    public IAudioSystemEffects2,
    // IAudioSystemEffectsCustomFormats may be optionally supported
    // by APOs that attach directly to the connector in the DEFAULT mode streaming graph
    public IAudioSystemEffectsCustomFormats, 
    public ISwapAPOMFX

而CBaseAudioProcessingObject的这义如下:
文件路径为:

C:\Program Files (x86)\Windows Kits\10\Include\10.0.18362.0\um\baseaudioprocessingobject.h

类定义如下:

class __declspec(novtable) CBaseAudioProcessingObject : public IAudioProcessingObject, public IAudioProcessingObjectRT, public IAudioProcessingObjectConfiguration
{

0 篇笔记 写笔记

Window音频处理对象APO(SFX,GFX,EFX,MFX,SFX)
APO代表“音频处理对象”。它是一个API和框架,由Microsoft设计,用于构建可插拔的音频过滤器(DSP)。原则上它与VST非常相似。Window音频处理对象APO用于实现对系统的声卡的数据处理,通过处理,可以实现用户自定义的均衡器、混响、颤音、回声消除 (AEC) 和自动增益控制 (AGC......
APO音频处理象开发概述及对接口关系
自定义音频处理对象APO的步骤:创建自定义 APO com 对象以提供所需的音频处理对象。创建用户界面以使用配置自定义 APO(可选)。创建 INF 文件以安装和注册 APO 和自定义用户界面。APO 必须有一个输入和一个输出连接。这些连接是音频缓冲区,可以有多个通道。APO 只能修改通过其I......
SwapAPO工程概述
SwapAPO是微软自带的一个APO工程,其功能实现的是左右声道的数据交换。具有很强的参考意义。工程源代码地址位于:https://github.com/Microsoft/Windows-driver-samples/tree/main/audio/sysvadSwapAPO工程配置工程目录如下......
SwapAPO COM接口关系图
总目录为SwapAPODlllib,其UUIP定义为:// SwapAPODlllib//[ uuid(7092F0B2-D28D-4095-95A7-6C37A97432A2), version(1.0)]其包含2个COM类,分别为SFX和MFXlibrary Swap......
SWAP APO inf文件信息
SWAP APO编译后的主体为swapapo.dll这里参考ComponentizedApoSample.inf文件的部分节选说明。inf文件的方体结构和普通的驱动INF文件一致,其结构如下:这里关于APO的注册关键是注册表Apo_AddReg相关的。这里先将各个UUID之间的关系说明一下:[A......
清除音频设备的音效处理模块APO(FxProperties注册表项)
Windows 音效处理大致分为SFX,MFX,EFX, 按照顺序,依次处理。下面是如何移除这些模块的方法:打开设备管理器-音频输入输出设备,找到要修改的设备,右键属性-详情,在属性列表框里选择 设备实例路径,有如下值,记录红色部分SWDMMDEVAPI{0.0.0.00000000}.{0......
让系统加载未签名的APO
打开注册表:HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindowsCurrentVersionAudio创建注册表项:DisableProtectedAudioDG = 1 (DWORD)......
Equalizer APO简介
Equalizer APO是一款图形参数化的Windows音频均衡器,它的实现技术实现是基于Vista系统的 Audio Processing Object(APO)。Equalizer APO特征过滤器的数量实际上是无限的适用于任何数量的频道非常低的延迟,这使得它适合于交互式应用程序CPU使用......
Windows音频音擎audiodg与APO关系
APO与其他音频过滤框架(如VST)的区别在于,APO是Windows音频引擎使用的过滤框架。VST:Virtual Studio TechnologyWindows音频引擎是Windows音频堆栈的核心组件。它的作用是在单个应用程序音频流和硬件音频设备之间架起桥梁。因此,它可以处理各种任务......
APO动态库DLL文件的路径问题
APO DLL注册路径APO的DLL文件是通过regsvr32注册表的。比如:regsvr32.exe xxAPO.dll这样在注册表HKEY_LOCAL_MACHINESOFTWAREClassesCLSID就会记录该文件的GUID的路径。该GUIDPKEY_FX_*EffectCls......
作者信息
我爱内核
Windows驱动开发,网站开发
好好学习,天天向上。
取消
感谢您的支持,我会继续努力的!
扫码支持
扫码打赏,你说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

您的支持,是我们前进的动力!