> ## Documentation Index
> Fetch the complete documentation index at: https://docs.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](https://docs.xbox.com/ja-jp/reference/audio/xapu/structs/xapucommandid.md)

処理のためにハードウェアに送信される基本コマンド パラメーターを指定します。同じ XApuCommandId が [XApuResult::id](https://docs.xbox.com/ja-jp/reference/audio/xapu/structs/xapuresult.md) に設定されます。

*channelCount*\
型: uint32\_t

ストリームのチャネル数を指定します。モノラルとステレオに対してそれぞれ 1 と 2 のみサポートされます。

*initializeDataLength*\
型: uint32\_t

使用されず、0 に設定する必要があります。

*initializeData*\
型: void\*

使用されず、NULL に設定する必要があります。

*startPitch*\
型: float

コンバーターがアクティブな場合の開始ピッチ。デコードのみの場合は、この値は無視されます。

*processingBufferLength*\
型: uint32\_t

[XApuDecodeConvertActivateCommand::processingBuffer](https://docs.xbox.com/ja-jp/reference/audio/xapu/structs/xapudecodeconvertactivatecommand.md) の長さ (バイト単位)。長さは 16 の倍数である必要があります。

*processingBuffer*\
型: void\*

[XApuProcessType::DecodeConvertOpus](https://docs.xbox.com/ja-jp/reference/audio/xapu/enums/xapuprocesstype.md) と [XApuProcessType::ConvertPCM](https://docs.xbox.com/ja-jp/reference/audio/xapu/enums/xapuprocesstype.md) 種別のために、非圧縮 PCM float (32 ビット) データを格納する中間バッファー。
処理バッファーは [XApuConnectOutputParameters::baseData](https://docs.xbox.com/ja-jp/reference/audio/xapu/structs/xapuconnectoutputparameters.md) から切り出され、[XApuDecodeConvertActivateCommand::processingBuffer](https://docs.xbox.com/ja-jp/reference/audio/xapu/structs/xapudecodeconvertactivatecommand.md) と [XApuDecodeConvertActivateCommand::processingBufferLength](https://docs.xbox.com/ja-jp/reference/audio/xapu/structs/xapudecodeconvertactivatecommand.md) 引数を使用して [XApuCommandType::Activate](https://docs.xbox.com/ja-jp/reference/audio/xapu/enums/xapucommandtype.md) コマンド経由で XAPU に渡されます。

処理バッファーは、[XApuProcessType::DecodeConvertOpus](https://docs.xbox.com/ja-jp/reference/audio/xapu/enums/xapuprocesstype.md) の場合、デコーダーからのまだ変換されていない中間 PCM float (32 ビット) データを格納するために必要です。[XApuProcessType::ConvertPCM](https://docs.xbox.com/ja-jp/reference/audio/xapu/enums/xapuprocesstype.md) の場合は、呼び出し側からの、まだ変換されていない PCM float データを格納します。このバッファーは 16 バイト境界にアラインされている必要があります。
また、[XApuProcessType::DecodeConvertOpus](https://docs.xbox.com/ja-jp/reference/audio/xapu/enums/xapuprocesstype.md) と [XApuProcessType::ConvertPCM](https://docs.xbox.com/ja-jp/reference/audio/xapu/enums/xapuprocesstype.md) の両方の種別で、まだ出力する準備ができていない変換済みデータも格納します。

XAPU は内部的に処理バッファーを 2 つのセグメントに分割します。未変換の入力 PCM データ用の入力セグメントと、変換された出力 PCM データ用の出力セグメントです。

入力セグメントの長さは、常に Opus パケット持続時間の 2 倍である必要があります。すなわち (2 x 960 x ChannelCount x sizeof(float))。

出力セグメントは、変換されたデータが 512 [XApuConnectInputParameters::maxFrameCountPerOutput](https://docs.xbox.com/ja-jp/reference/audio/xapu/structs/xapuconnectinputparameters.md) 未満の場合に、そのデータを格納するために使用されます。

XAPU は [XApuConnectInputParameters::maxFrameCountPerOutput](https://docs.xbox.com/ja-jp/reference/audio/xapu/structs/xapuconnectinputparameters.md) フレーム未満であってもデータを出力するため、[XApuCommandOptions::Flush](https://docs.xbox.com/ja-jp/reference/audio/xapu/enums/xapucommandoptions.md) が設定されている場合、出力セグメントは使用されません。

出力セグメントの長さは、[XApuConnectInputParameters::maxFrameCountPerOutput](https://docs.xbox.com/ja-jp/reference/audio/xapu/structs/xapuconnectinputparameters.md) x ChannelCount x sizeof(float) です。

[XApuDecodeConvertActivateCommand::processingBufferLength](https://docs.xbox.com/ja-jp/reference/audio/xapu/structs/xapudecodeconvertactivatecommand.md) はストリームごとに一定の数値で、1/8 から 8/1 までのすべてのピッチ値に対して機能し、次のように設定する必要があります。

ProcessingBufferLength = (2 x 960 x ChannelCount x sizeof(float)) + ([XApuConnectInputParameters::maxFrameCountPerOutput](https://docs.xbox.com/ja-jp/reference/audio/xapu/structs/xapuconnectinputparameters.md) x ChannelCount x sizeof(float))\
ChannelCount = 1 または 2

[XApuConnectInputParameters::maxFrameCountPerOutput](https://docs.xbox.com/ja-jp/reference/audio/xapu/structs/xapuconnectinputparameters.md) = 256、480、512、960、または 1024。

## 解説

`XApuDecodeConvertActivateCommand` は、デコード変換のアクティブ化パラメーターに使用されます。`XApuCommandId` メンバーの詳細については、[XApuCommandId](https://docs.xbox.com/ja-jp/reference/audio/xapu/structs/xapucommandid.md) を参照してください。`XApuProcessType` 定数の詳細については、[XApuProcessType](https://docs.xbox.com/ja-jp/reference/audio/xapu/enums/xapuprocesstype.md) を参照してください。

## 要件

**ヘッダー:** xapu.h

**サポートされているプラットフォーム:** XBOX Series X|S

## 関連項目

[XApuEnqueueCommand](https://docs.xbox.com/ja-jp/reference/audio/xapu/functions/xapuenqueuecommand.md)\
[XAPU](https://docs.xbox.com/ja-jp/reference/audio/xapu/xapu_members.md)


## Related topics

- [XApuCommandId](https://docs.xbox.com/ja-jp/reference/audio/xapu/structs/xapucommandid.md)
- [XApuDecodeConvertCommand](https://docs.xbox.com/ja-jp/reference/audio/xapu/structs/xapudecodeconvertcommand.md)
- [XAPU](https://docs.xbox.com/ja-jp/reference/audio/xapu/xapu_members.md)
- [XApuEnqueueCommand](https://docs.xbox.com/ja-jp/reference/audio/xapu/functions/xapuenqueuecommand.md)
- [XApuConnectInputParameters](https://docs.xbox.com/ja-jp/reference/audio/xapu/structs/xapuconnectinputparameters.md)
