> ## 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.

# XApuDecodeConvertActivateCommand

> XApuDecodeConvertActivateCommand

# XApuDecodeConvertActivateCommand

定義解碼或解碼轉換的啟用參數

## 語法

```cpp theme={null}
typedef struct XApuDecodeConvertActivateCommand {  
    XApuCommandId id;  
    uint32_t channelCount;  
    uint32_t initializeDataLength;  
    void* initializeData;  
    float startPitch;  
    uint32_t processingBufferLength;  
    void* processingBuffer;  
} XApuDecodeConvertActivateCommand  
```

### 成員

*id*\
類型：[XApuCommandId](/zh-TW/reference/audio/xapu/structs/xapucommandid)

指定要傳送至硬體進行處理的基本命令參數。相同的 XApuCommandId 會設定至 [XApuResult::id](/zh-TW/reference/audio/xapu/structs/xapuresult)。

*channelCount*\
類型：uint32\_t

指定串流通道數目。僅支援 1 和 2，分別代表單聲道和立體聲。

*initializeDataLength*\
類型：uint32\_t

未使用，應設定為零。

*initializeData*\
類型：void\*

未使用，應設定為 NULL。

*startPitch*\
類型：float

轉換器作用中時的起始音高。在僅解碼的情況下，會忽略此值。

*processingBufferLength*\
類型：uint32\_t

[XApuDecodeConvertActivateCommand::processingBuffer](/zh-TW/reference/audio/xapu/structs/xapudecodeconvertactivatecommand) 的長度 (以位元組為單位)。長度必須是 16 的倍數。

*processingBuffer*\
類型：void\*

中繼緩衝區，用來為 [XApuProcessType::DecodeConvertOpus](/zh-TW/reference/audio/xapu/enums/xapuprocesstype) 和 [XApuProcessType::ConvertPCM](/zh-TW/reference/audio/xapu/enums/xapuprocesstype) 類型儲存未壓縮的 PCM float (32 位元) 資料
處理緩衝區是從 [XApuConnectOutputParameters::baseData](/zh-TW/reference/audio/xapu/structs/xapuconnectoutputparameters) 中劃分出來，並透過 [XApuCommandType::Activate](/zh-TW/reference/audio/xapu/enums/xapucommandtype) 命令，使用 [XApuDecodeConvertActivateCommand::processingBuffer](/zh-TW/reference/audio/xapu/structs/xapudecodeconvertactivatecommand) 和 [XApuDecodeConvertActivateCommand::processingBufferLength](/zh-TW/reference/audio/xapu/structs/xapudecodeconvertactivatecommand) 引數傳遞給 XAPU

在 [XApuProcessType::DecodeConvertOpus](/zh-TW/reference/audio/xapu/enums/xapuprocesstype) 的情況下，需要處理緩衝區來儲存解碼器產生但尚未轉換的中繼 PCM float (32 位元) 資料。在 [XApuProcessType::ConvertPCM](/zh-TW/reference/audio/xapu/enums/xapuprocesstype) 的情況下，它會儲存呼叫端提供但尚未轉換的 PCM float 資料。此緩衝區必須為 16 位元組對齊。
此外，對於 [XApuProcessType::DecodeConvertOpus](/zh-TW/reference/audio/xapu/enums/xapuprocesstype) 和 [XApuProcessType::ConvertPCM](/zh-TW/reference/audio/xapu/enums/xapuprocesstype) 這兩種類型，它也會儲存已轉換但尚未準備好輸出的資料。

XAPU 會在內部將處理緩衝區分成兩個區段：一個是用於未轉換輸入 PCM 資料的輸入區段，
另一個是用於已轉換輸出 PCM 資料的輸出區段。

輸入區段的長度應一律為 Opus 封包持續時間長度的兩倍，即 (2 x 960 x ChannelCount x sizeof(float))

當已轉換的資料少於 512 [XApuConnectInputParameters::maxFrameCountPerOutput](/zh-TW/reference/audio/xapu/structs/xapuconnectinputparameters) 時，會使用輸出區段來儲存該資料

設定 [XApuCommandOptions::Flush](/zh-TW/reference/audio/xapu/enums/xapucommandoptions) 時不會使用輸出區段，因為即使資料少於 [XApuConnectInputParameters::maxFrameCountPerOutput](/zh-TW/reference/audio/xapu/structs/xapuconnectinputparameters) 個框架，XAPU 也會輸出資料。

輸出區段的長度為 [XApuConnectInputParameters::maxFrameCountPerOutput](/zh-TW/reference/audio/xapu/structs/xapuconnectinputparameters) x ChannelCount x sizeof(float)

[XApuDecodeConvertActivateCommand::processingBufferLength](/zh-TW/reference/audio/xapu/structs/xapudecodeconvertactivatecommand) 是每個串流的固定數值，適用於從 1/8 到 8/1 的所有音高值，應依下列方式設定：

ProcessingBufferLength = (2 x 960 x ChannelCount x sizeof(float)) + ([XApuConnectInputParameters::maxFrameCountPerOutput](/zh-TW/reference/audio/xapu/structs/xapuconnectinputparameters) x ChannelCount x sizeof(float))\
ChannelCount = 1 或 2

[XApuConnectInputParameters::maxFrameCountPerOutput](/zh-TW/reference/audio/xapu/structs/xapuconnectinputparameters) = 256、480、512、960 或 1024。

## 備註

由 `XApuDecodeConvertActivateCommand` 用來解碼及轉換啟用參數。如需 `XApuCommandId` 成員的資訊，請參閱 [XApuCommandId](/zh-TW/reference/audio/xapu/structs/xapucommandid)。如需 `XApuProcessType` 常數的資訊，請參閱 [XApuProcessType](/zh-TW/reference/audio/xapu/enums/xapuprocesstype)。

## 需求

**標頭：** xapu.h

**支援的平台：** XBOX Series X|S

## 另請參閱

[XApuEnqueueCommand](/zh-TW/reference/audio/xapu/functions/xapuenqueuecommand)\
[XAPU](/zh-TW/reference/audio/xapu/xapu_members)


## Related topics

- [XApuDecodeConvertActivateCommand](/ko/reference/audio/xapu/structs/xapudecodeconvertactivatecommand.md)
- [XApuCommandId](/reference/audio/xapu/structs/xapucommandid.md)
- [XAPU](/reference/audio/xapu/xapu_members.md)
