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

Define los parámetros de activación de descodificación o descodificación-conversión

## Sintaxis

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

### Miembros

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

Especifica los parámetros de comando base que se enviarán al hardware para su procesamiento. El mismo XApuCommandId se establecerá en [XApuResult::id](/reference/audio/xapu/structs/xapuresult).

*channelCount*\
Tipo: uint32\_t

Especifica el número de canales de la secuencia. Solo se admiten 1 y 2 para mono y estéreo, respectivamente.

*initializeDataLength*\
Tipo: uint32\_t

No se usa y debe establecerse en cero.

*initializeData*\
Tipo: void\*

No se usa y debe establecerse en NULL.

*startPitch*\
Tipo: float

Tono inicial si el convertidor está activo. En el caso de solo descodificación, este valor se omite.

*processingBufferLength*\
Tipo: uint32\_t

Longitud de [XApuDecodeConvertActivateCommand::processingBuffer](/reference/audio/xapu/structs/xapudecodeconvertactivatecommand) en bytes. La longitud debe ser un múltiplo de 16.

*processingBuffer*\
Tipo: void\*

Búfer intermedio para almacenar datos PCM float (32 bits) sin comprimir para los tipos [XApuProcessType::DecodeConvertOpus](/reference/audio/xapu/enums/xapuprocesstype) y [XApuProcessType::ConvertPCM](/reference/audio/xapu/enums/xapuprocesstype)
El búfer de procesamiento se extrae de [XApuConnectOutputParameters::baseData](/reference/audio/xapu/structs/xapuconnectoutputparameters) y se pasa a XAPU a través del comando [XApuCommandType::Activate](/reference/audio/xapu/enums/xapucommandtype) mediante los argumentos [XApuDecodeConvertActivateCommand::processingBuffer](/reference/audio/xapu/structs/xapudecodeconvertactivatecommand) y [XApuDecodeConvertActivateCommand::processingBufferLength](/reference/audio/xapu/structs/xapudecodeconvertactivatecommand)

El búfer de procesamiento es necesario para almacenar los datos intermedios PCM float (32 bits) del descodificador que aún no se han convertido para el caso de [XApuProcessType::DecodeConvertOpus](/reference/audio/xapu/enums/xapuprocesstype). Para el caso de [XApuProcessType::ConvertPCM](/reference/audio/xapu/enums/xapuprocesstype), almacenará los datos PCM float del autor de la llamada que aún no se han convertido. Este búfer debe estar alineado a 16 bytes.
También almacena los datos convertidos que aún no están listos para salir, tanto para el tipo [XApuProcessType::DecodeConvertOpus](/reference/audio/xapu/enums/xapuprocesstype) como para [XApuProcessType::ConvertPCM](/reference/audio/xapu/enums/xapuprocesstype).

XAPU divide internamente el búfer de procesamiento en dos segmentos: un segmento de entrada para los datos PCM de entrada sin convertir
y un segmento de salida para los datos PCM de salida convertidos.

La longitud del segmento de entrada siempre debe ser el doble de la longitud de la duración del paquete Opus, es decir, (2 x 960 x ChannelCount x sizeof(float))

El segmento de salida se usa para almacenar los datos convertidos cuando son menos de 512 [XApuConnectInputParameters::maxFrameCountPerOutput](/reference/audio/xapu/structs/xapuconnectinputparameters)

El segmento de salida no se usará cuando se establezca [XApuCommandOptions::Flush](/reference/audio/xapu/enums/xapucommandoptions), ya que XAPU generará los datos de salida incluso si son menos de [XApuConnectInputParameters::maxFrameCountPerOutput](/reference/audio/xapu/structs/xapuconnectinputparameters) fotogramas.

La longitud del segmento de salida es [XApuConnectInputParameters::maxFrameCountPerOutput](/reference/audio/xapu/structs/xapuconnectinputparameters) x ChannelCount x sizeof(float)

[XApuDecodeConvertActivateCommand::processingBufferLength](/reference/audio/xapu/structs/xapudecodeconvertactivatecommand) es un número constante por secuencia, funciona para todos los valores de tono de 1/8 a 8/1 y debe establecerse de la siguiente manera:

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

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

## Comentarios

`XApuDecodeConvertActivateCommand` lo usa para los parámetros de activación de descodificación y conversión. Para obtener información sobre los miembros de `XApuCommandId`, consulte [XApuCommandId](/reference/audio/xapu/structs/xapucommandid). Para obtener información sobre las constantes de `XApuProcessType`, consulte [XApuProcessType](/reference/audio/xapu/enums/xapuprocesstype).

## Requisitos

**Encabezado:** xapu.h

**Plataformas compatibles:** XBOX Series X|S

## Consulte también

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


## Related topics

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