Skip to main content

GetShapeDmaNumChannels

取得直接記憶體存取 (DMA) 音訊緩衝區中的聲道數目。

語法

參數

context   _In_
類型: SHAPE_DMA_CONTEXT*
SHAPE_DMA_CONTEXT 結構的指標。

傳回值

類型: UINT32 聲道數目。

備註

DMA 系統支援讀取和寫入功能,並可自動進行浮點數轉整數及整數轉浮點數的轉換。DMA 系統使用包含 128 個樣本區塊之非交錯樣本的循環緩衝區。 DMA 處理器可讓可調整硬體音訊處理引擎 (SHAPE) 將資料從混音緩衝區傳送到主系統記憶體,並從主系統擷取資料到混音緩衝區以供進一步處理。DMA 以區塊為單位進行,一次傳輸一個音訊框架的資料。為了支援區塊交錯資料,略過值會指定讀取或寫入樣本時,要在系統記憶體中 (從基底位址) 略過的音訊框架區塊數目。因此,多聲道串流的每個聲道都需要一個 DMA 內容。 音訊資料樣本一律以 32 位元值 (整數或浮點數) 讀取和寫入,如 SHAPE_DMA_CONTEXT 結構的 floatConvert 旗標所指定。請注意,DMA 的方向 (讀取或寫入) 是在 DMA 命令中指定,而不是在 DMA 內容中指定。這有助於減少資料頻寬用量。DMA 引擎沒有訊號處理功能,但可以執行浮點數轉整數 (或整數轉浮點數) 的轉換。這可讓應用程式 CPU 以浮點格式處理資料樣本。 若要計算 DMA 緩衝區的大小,請使用下列公式:
讀取和寫入指標的遞增方式如下:
音訊緩衝區內的位址計算方式如下:

需求

標頭: shapedmacontext.h 支援的平台: XBOX One 系列主機和 XBOX Series 主機

另請參閱

SHAPE_DMA_CONTEXT
ShapeDmaContext
Last modified on October 6, 2026