> ## Documentation Index
> Fetch the complete documentation index at: https://devdocs.xbox.com/llms.txt
> Use this file to discover all available pages before exploring further.

# GetShapeDmaPeakMagnitude

> GetShapeDmaPeakMagnitude

# GetShapeDmaPeakMagnitude

取得峰值大小。

## 語法

```cpp theme={null}
float GetShapeDmaPeakMagnitude(  
         const SHAPE_DMA_CONTEXT* context  
)  
```

### 參數

*context*   \_In\_\
類型: [SHAPE\_DMA\_CONTEXT\*](/zh-TW/reference/audio/shapedmacontext/structs/shape_dma_context)

[SHAPE\_DMA\_CONTEXT](/zh-TW/reference/audio/shapedmacontext/structs/shape_dma_context) 結構的指標。

### 傳回值

類型: float

峰值大小。

## 備註

在遊戲音訊引擎中，管理動態餘裕 (headroom) 可能非常困難。因此，每個 [SHAPE](/zh-TW/build/console-features/audio/overviews/shape-overview) 區塊都會維護與訊號餘裕和增益相關的狀態。每個區塊 (取樣率轉換器 \[SRC] 區塊除外) 都會記錄處理期間是否發生內部飽和。

除了內部飽和旗標之外，每個硬體區塊也會維護兩個 4 位元數字，代表硬體區塊輸出的大小。大小的計算方式是判斷音訊框架期間的峰值輸出，並計算峰值絕對值的前導零個數。其中一個 4 位元數字保存持續性峰值大小；另一個則由硬體在每個音訊框架重設。

除了監視每個個別硬體區塊的峰值大小之外，也會維護混音緩衝區的峰值大小。當硬體區塊的輸出加入混音緩衝區時，會以相同方式 (計算前導零) 計算峰值大小。每個硬體區塊狀態都會另外維護一組 4 位元峰值大小值。這些值代表硬體區塊的輸出累加到混音緩衝區之後，混音緩衝區的峰值大小。其中一個 4 位元數字代表持續進行的持續性峰值大小；另一個則在每個音訊框架更新。即使實際上代表的是混音緩衝區狀態，峰值大小值仍會儲存在 SHAPE 區塊的內容中。

峰值大小依照下表進行編碼。

| 二進位值 | 描述 |
| - | - |
| 0B0000 | 飽和: 為產生輸出而計算出的值溢出帶正負號的 24 位元範圍，並以最接近的極值取代。具體而言，大於 8,388,607 (0x7F\_FFFF) 的值會以 8,388,607 取代，小於 -8,388,608 (0x80\_0000) 的值則會以 -8,388,608 取代。 |
| 0B0001 | 峰值的絕對值大於 MAX >> 1 (0x3F\_FFFF)。 |
| 0B0010 | 峰值的絕對值大於 MAX >> 2 (0x1F\_FFFF)。 |
| 0B0011 | 峰值的絕對值大於 MAX >> 3。 |
| 0B0100 | 峰值的絕對值大於 MAX >> 4。 |
| 0B0101 | 峰值的絕對值大於 MAX >> 5。 |
| 0B0110 到 0B1101 | 與上述描述類似，但適用於峰值的絕對值大於 MAX >> 6 到 13 時。 |
| 0B1110 | 峰值的絕對值大於 MAX >> 14。 |
| 0B1111 | 峰值的絕對值小於或等於 MAX >> 14。 |

為了協助管理餘裕並避免溢位和飽和，除了精細的增益設定之外，也可以在硬體區塊的輸出累加到輸出混音緩衝區之前，對其執行 0 到 7 位元的右移。這是在每個 SHAPE 硬體區塊的內容中指定。

## 需求

**標頭:** shapedmacontext.h

**支援的平台:** XBOX One 系列主機和 XBOX Series 主機

## 另請參閱

[SHAPE 概觀](/zh-TW/build/console-features/audio/overviews/shape-overview)\
[ShapeDmaContext](/zh-TW/reference/audio/shapedmacontext/shapedmacontext_members)


## Related topics

- [GetShapeDmaPeakMagnitude](/reference/audio/shapedmacontext/functions/getshapedmapeakmagnitude.md)
- [ShapeDmaContext](/reference/audio/shapedmacontext/shapedmacontext_members.md)
- [GetShapeDmaMixBufferPeakMagnitude](/reference/audio/shapedmacontext/functions/getshapedmamixbufferpeakmagnitude.md)
- [GetShapeEqCompPeakMagnitude](/reference/audio/shapeeqcompcontext/functions/getshapeeqcomppeakmagnitude.md)
- [GetShapeFiltVolPeakMagnitude](/reference/audio/shapefiltvolcontext/functions/getshapefiltvolpeakmagnitude.md)
