SetShapeDmaCommand
初始化一个 SHAPE DMA 命令。语法
参数
command _Inout_类型:SHAPE_FLOWGRAPH_COMMAND* 要初始化的 SHAPE_FLOWGRAPH_COMMAND 命令。 contextId
类型:UINT32 此命令将引用的 DMA 上下文 ID(即索引)。 mixBuffer
类型:UINT32 要读取或写入的混音缓冲区,取决于 writeToMemory 标志的设置。 writeToMixBuffer
类型:bool 如果 DMA 命令为写入到指定的混音缓冲区并从主内存读取,则为 True。如果 DMA 命令为从指定的混音缓冲区读取并写入到主内存,则为 False。
返回值
类型:HRESULT 如果函数成功,则返回S_OK。如果一个或多个参数无效,函数返回 E_INVALIDARG。
注解
直接内存访问(DMA)系统支持读取和写入功能,并自动进行浮点数到整数以及整数到浮点数的转换。DMA 系统使用循环缓冲区,其中包含以 128 个采样为一块的解交织采样。 DMA 处理器使得可扩展硬件音频处理引擎(SHAPE)能够将数据从混音缓冲区发送到主系统内存,并将数据从主系统读取到混音缓冲区以便进一步处理。DMA 以块为单位进行,一次传输一个音频帧的数据。为支持块交织数据,可通过跳过值指定读取或写入采样时,从基地址在系统内存中要跳过的音频帧块数。多声道流每个声道需要一个 DMA 上下文。音频数据采样始终以 32 位值进行读取和写入,可以是整数或浮点数,由 DMA 上下文的floatConvert 标志指定。
DMA 的方向(读或写)是在 DMA 命令中指定的,而不是在 DMA 上下文中。这有助于减少数据带宽。DMA 引擎没有信号处理能力,但可以执行浮点到整数或整数到浮点的转换。这样应用程序 CPU 就可以以浮点格式处理数据采样。
