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

Définit les paramètres d'activation du décodage ou du décodage-conversion

## Syntaxe

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

### Membres

*id*\
Type : [XApuCommandId](/fr/reference/audio/xapu/structs/xapucommandid)

Spécifie les paramètres de commande de base à envoyer au matériel pour traitement. Le même XApuCommandId sera affecté à [XApuResult::id](/fr/reference/audio/xapu/structs/xapuresult).

*channelCount*\
Type : uint32\_t

Spécifie le nombre de canaux du flux. Seules les valeurs 1 et 2 sont prises en charge, respectivement pour le mono et la stéréo.

*initializeDataLength*\
Type : uint32\_t

Non utilisé ; doit être défini sur zéro.

*initializeData*\
Type : void\*

Non utilisé ; doit être défini sur NULL.

*startPitch*\
Type : float

Hauteur de départ si le convertisseur est actif. Dans le cas du décodage seul, cette valeur est ignorée.

*processingBufferLength*\
Type : uint32\_t

Longueur de [XApuDecodeConvertActivateCommand::processingBuffer](/fr/reference/audio/xapu/structs/xapudecodeconvertactivatecommand) en octets. La longueur doit être un multiple de 16.

*processingBuffer*\
Type : void\*

Mémoire tampon intermédiaire destinée à stocker des données PCM float (32 bits) non compressées pour les types [XApuProcessType::DecodeConvertOpus](/fr/reference/audio/xapu/enums/xapuprocesstype) et [XApuProcessType::ConvertPCM](/fr/reference/audio/xapu/enums/xapuprocesstype)
La mémoire tampon de traitement est prélevée dans [XApuConnectOutputParameters::baseData](/fr/reference/audio/xapu/structs/xapuconnectoutputparameters) et transmise au XAPU via la commande [XApuCommandType::Activate](/fr/reference/audio/xapu/enums/xapucommandtype) à l'aide des arguments [XApuDecodeConvertActivateCommand::processingBuffer](/fr/reference/audio/xapu/structs/xapudecodeconvertactivatecommand) et [XApuDecodeConvertActivateCommand::processingBufferLength](/fr/reference/audio/xapu/structs/xapudecodeconvertactivatecommand)

La mémoire tampon de traitement est nécessaire pour stocker les données PCM float (32 bits) intermédiaires provenant du décodeur qui ne sont pas encore converties dans le cas [XApuProcessType::DecodeConvertOpus](/fr/reference/audio/xapu/enums/xapuprocesstype). Dans le cas [XApuProcessType::ConvertPCM](/fr/reference/audio/xapu/enums/xapuprocesstype), elle stocke les données PCM float provenant de l'appelant qui ne sont pas encore converties. Cette mémoire tampon doit être alignée sur 16 octets.
Elle stocke également les données converties qui ne sont pas encore prêtes à être produites en sortie, pour les types [XApuProcessType::DecodeConvertOpus](/fr/reference/audio/xapu/enums/xapuprocesstype) et [XApuProcessType::ConvertPCM](/fr/reference/audio/xapu/enums/xapuprocesstype).

Le XAPU divise en interne la mémoire tampon de traitement en deux segments : un segment d'entrée pour les données PCM d'entrée non converties,
et un segment de sortie pour les données PCM de sortie converties.

La longueur du segment d'entrée doit toujours être le double de la durée d'un paquet Opus, c'est-à-dire (2 x 960 x ChannelCount x sizeof(float))

Le segment de sortie sert à stocker les données converties lorsqu'elles sont inférieures à 512 [XApuConnectInputParameters::maxFrameCountPerOutput](/fr/reference/audio/xapu/structs/xapuconnectinputparameters)

Le segment de sortie n'est pas utilisé lorsque [XApuCommandOptions::Flush](/fr/reference/audio/xapu/enums/xapucommandoptions) est défini, car le XAPU produit les données en sortie même si elles comptent moins de [XApuConnectInputParameters::maxFrameCountPerOutput](/fr/reference/audio/xapu/structs/xapuconnectinputparameters) trames.

La longueur du segment de sortie est [XApuConnectInputParameters::maxFrameCountPerOutput](/fr/reference/audio/xapu/structs/xapuconnectinputparameters) x ChannelCount x sizeof(float)

[XApuDecodeConvertActivateCommand::processingBufferLength](/fr/reference/audio/xapu/structs/xapudecodeconvertactivatecommand) est une valeur constante par flux, qui fonctionne pour toutes les valeurs de hauteur de 1/8 à 8/1 et doit être définie comme suit :

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

[XApuConnectInputParameters::maxFrameCountPerOutput](/fr/reference/audio/xapu/structs/xapuconnectinputparameters) = 256, 480, 512, 960 ou 1024.

## Remarques

Utilisé par `XApuDecodeConvertActivateCommand` pour les paramètres d'activation du décodage et de la conversion. Pour plus d'informations sur les membres de `XApuCommandId`, consultez [XApuCommandId](/fr/reference/audio/xapu/structs/xapucommandid). Pour plus d'informations sur les constantes `XApuProcessType`, consultez [XApuProcessType](/fr/reference/audio/xapu/enums/xapuprocesstype).

## Configuration requise

**En-tête :** xapu.h

**Plateformes prises en charge :** XBOX Series X|S

## Voir aussi

[XApuEnqueueCommand](/fr/reference/audio/xapu/functions/xapuenqueuecommand)\
[XAPU](/fr/reference/audio/xapu/xapu_members)


## Related topics

- [XApuCommandId](/fr/reference/audio/xapu/structs/xapucommandid.md)
- [XAPU](/fr/reference/audio/xapu/xapu_members.md)
- [XApuDecodeConvertCommand](/fr/reference/audio/xapu/structs/xapudecodeconvertcommand.md)
- [XApuEnqueueCommand](/fr/reference/audio/xapu/functions/xapuenqueuecommand.md)
- [XApuConnectInputParameters](/fr/reference/audio/xapu/structs/xapuconnectinputparameters.md)
