Skip to main content

SetShapeDmaReadPointer

设置直接内存访问 (DMA) 读取指针。

语法

参数

context   _Inout_
类型:SHAPE_DMA_CONTEXT*
指向 SHAPE_DMA_CONTEXT 结构的指针。 readPointer   
类型:UINT32
读取指针的值,以帧(128 个采样的块)为单位。

返回值

类型:HRESULT HRESULT 成功或错误代码。

备注

若要计算 DMA 缓冲区的大小,请使用以下公式:
读取指针和写入指针按以下方式递增:
音频缓冲区内的地址按以下方式计算:
你可以通过确保音频缓冲区足够大以及按固定间隔(与缓冲区大小相关)传输数据,来防止 DMA 命令被阻塞。例如,如果一次传输四个硬件帧,请确保缓冲区中存有这些帧的若干倍(至少双缓冲,即八帧),以便硬件能够在标题的读取指针之前进行写入。或者,你也可以强制在提交下一个流图之前清空缓冲区(消费数据、更新 DMA 读取指针,然后提交流图)。有关更多详细信息,请参阅 SHAPE 概述 中的 阻塞命令 你可以将流图作为持久或非持久的形式提交进行处理。持久流图在处理完成后仍会驻留,以便在读取和写入指针推进以及其他上下文信息更新之后,在下一帧中重复其处理。

要求

头文件: shapedmacontext.h 支持的平台: XBOX One 系列主机和 XBOX Series 主机

另请参阅

ShapeDmaContext
最后修改于 2026年8月24日