> ## 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 de décodage ou de 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-CA/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-CA/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, pour mono et stéréo respectivement.

*initializeDataLength*\
Type : uint32\_t

Non utilisé; doit être réglé à zéro.

*initializeData*\
Type : void\*

Non utilisé; doit être réglé à NULL.

*startPitch*\
Type : float

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

*processingBufferLength*\
Type : uint32\_t

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

*processingBuffer*\
Type : void\*

Mémoire tampon intermédiaire permettant de stocker des données PCM float (32 bits) non compressées pour les types [XApuProcessType::DecodeConvertOpus](/fr-CA/reference/audio/xapu/enums/xapuprocesstype) et [XApuProcessType::ConvertPCM](/fr-CA/reference/audio/xapu/enums/xapuprocesstype)
La mémoire tampon de traitement est découpée dans [XApuConnectOutputParameters::baseData](/fr-CA/reference/audio/xapu/structs/xapuconnectoutputparameters) et transmise à la XAPU au moyen de la commande [XApuCommandType::Activate](/fr-CA/reference/audio/xapu/enums/xapucommandtype) à l'aide des arguments [XApuDecodeConvertActivateCommand::processingBuffer](/fr-CA/reference/audio/xapu/structs/xapudecodeconvertactivatecommand) et [XApuDecodeConvertActivateCommand::processingBufferLength](/fr-CA/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 de [XApuProcessType::DecodeConvertOpus](/fr-CA/reference/audio/xapu/enums/xapuprocesstype). Dans le cas de [XApuProcessType::ConvertPCM](/fr-CA/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 aussi les données converties qui ne sont pas encore prêtes à être émises, pour les types [XApuProcessType::DecodeConvertOpus](/fr-CA/reference/audio/xapu/enums/xapuprocesstype) et [XApuProcessType::ConvertPCM](/fr-CA/reference/audio/xapu/enums/xapuprocesstype).

La 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 longueur de la durée d'un paquet Opus, c.-à-d. (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-CA/reference/audio/xapu/structs/xapuconnectinputparameters)

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

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

[XApuDecodeConvertActivateCommand::processingBufferLength](/fr-CA/reference/audio/xapu/structs/xapudecodeconvertactivatecommand) est un nombre constant par flux, qui fonctionne pour toutes les valeurs de hauteur tonale de 1/8 à 8/1 et doit être défini comme suit :

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

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

## Remarques

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

## Configuration requise

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

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

## Voir aussi

[XApuEnqueueCommand](/fr-CA/reference/audio/xapu/functions/xapuenqueuecommand)\
[XAPU](/fr-CA/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)
