XDspConnect
与硬件服务器建立连接,创建 XDSP 客户端实例,并分配处理所需的资源。同时活动的 XDSP 客户端全局上限为 8 个。语法
参数
baseBuffer _In_类型:float* 由 XDSP 调用方分配的连续缓冲区,用于传递输入数据和获取输出数据。有关其他详细信息,请参阅下文的备注部分。 baseBufferLength _In_
类型:uint32_t baseBuffer 的长度(以字节为单位)。该长度至少为 64 KB,最多不能超过 500 MB。 aggregateImpulseResponseInSeconds _In_
类型:uint32_t 表示将同时在此客户端上激活的所有单个脉冲响应的总时长。对于 XDspProcessType::Convolution,aggregateImpulseResponseInSeconds 必须设置为大于零的值;否则必须为零。所有 XDSP 客户端的总脉冲响应时长全局上限为 128 秒。 handle _Outptr_
类型:XDspClientHandle* XDSP 客户端的句柄,用于通过 XDspActivate 激活流,以及通过 XDspDisconnect 将客户端从硬件服务器断开连接。所有 XDSPClientHandle 在任何给定时刻最多可有 256 个流处于活动状态。
返回值
类型:HRESULT 如果方法成功,则返回 S_OK。如果方法失败,则返回下列代码之一(部分列表):备注
如果调用成功,调用方可以通过 XDspCommand 参数使用 baseBuffer 传递流的输入数据和获取输出数据。如果使用包络,此缓冲区还应包含用于存储包络参数的空间。有关包络的详细信息,请参阅使用 XDSP API 进行包络处理概述。 在激活 XDSP 流之前,必须调用此函数以注册一大块内存,该内存足够容纳:作为输入的多个完整音频流、通过 XDspActivate 激活的所有 XDSP 流的多个输出缓冲区,以及在 XDspProcessType::ForwardFourierTransform 处理类型的 XDspCommand 中可能使用的多个块乘数缓冲区。请注意上文所述的此缓冲区的大小上下限要求。如果此调用成功,所有 XDSP 流都可以访问此内存块的任何部分。 此内存应通过 XMemAlloc() 分配,属性为:XALLOC_MEMTYPE_PHYSICAL_CACHEABLE、XALLOC_PAGESIZE_64KB、XALLOC_ALIGNMENT_64K 这些属性应使用 MAKE_XALLOC_ATTRIBUTES() 进行设置。 示例如下:要求
头文件: XDspAudio.h 库: Chad.lib 支持的平台: XBOX Series X|S概念文档
另请参阅
XDSPXDspConnectWithMaximumStreamLimit
XDspDisconnect
XDSP Errors
使用 XDSP API 进行单流卷积概述
使用 XDSP API 进行单流 FFT/IFFT 概述
使用 XDSP API 进行带包络的单流卷积概述
