Skip to main content

XApuDecodeConvertActivateCommand

Define os parâmetros de ativação de decodificação ou de decodificação e conversão

Sintaxe

Membros

id
Tipo: XApuCommandId
Especifica os parâmetros básicos de comando a serem enviados ao hardware para processamento. O mesmo XApuCommandId será definido em XApuResult::id. channelCount
Tipo: uint32_t
Especifica a contagem de canais do fluxo. Somente 1 e 2 são compatíveis, para mono e estéreo, respectivamente. initializeDataLength
Tipo: uint32_t
Não usado; deve ser definido como zero. initializeData
Tipo: void*
Não usado; deve ser definido como NULL. startPitch
Tipo: float
Pitch inicial se o conversor estiver ativo. No caso somente de decodificação, esse valor é ignorado. processingBufferLength
Tipo: uint32_t
Comprimento de XApuDecodeConvertActivateCommand::processingBuffer em bytes. O comprimento deve ser múltiplo de 16. processingBuffer
Tipo: void*
Buffer intermediário para armazenar dados PCM float (32 bits) não compactados para os tipos XApuProcessType::DecodeConvertOpus e XApuProcessType::ConvertPCM O buffer de processamento é extraído de XApuConnectOutputParameters::baseData e passado para a XAPU por meio do comando XApuCommandType::Activate usando os argumentos XApuDecodeConvertActivateCommand::processingBuffer e XApuDecodeConvertActivateCommand::processingBufferLength O buffer de processamento é necessário para armazenar os dados PCM float (32 bits) intermediários do decodificador que ainda não foram convertidos, no caso de XApuProcessType::DecodeConvertOpus. No caso de XApuProcessType::ConvertPCM, ele armazenará os dados PCM float do chamador que ainda não foram convertidos. Esse buffer deve ser alinhado em 16 bytes. Ele também armazena dados convertidos que ainda não estão prontos para saída, tanto para o tipo XApuProcessType::DecodeConvertOpus quanto para o tipo XApuProcessType::ConvertPCM. A XAPU divide internamente o buffer de processamento em dois segmentos: um segmento de entrada para os dados PCM de entrada não convertidos e um segmento de saída para os dados PCM de saída convertidos. O comprimento do segmento de entrada deve ser sempre o dobro do comprimento da duração do pacote Opus, ou seja, (2 x 960 x ChannelCount x sizeof(float)) O segmento de saída é usado para armazenar os dados convertidos quando eles forem menores que 512 XApuConnectInputParameters::maxFrameCountPerOutput O segmento de saída não será usado quando XApuCommandOptions::Flush estiver definido, pois a XAPU emitirá os dados mesmo que sejam menores que XApuConnectInputParameters::maxFrameCountPerOutput quadros. O comprimento do segmento de saída é XApuConnectInputParameters::maxFrameCountPerOutput x ChannelCount x sizeof(float) XApuDecodeConvertActivateCommand::processingBufferLength é um número constante por fluxo, funciona para todos os valores de pitch de 1/8 a 8/1 e deve ser definido da seguinte maneira: ProcessingBufferLength = (2 x 960 x ChannelCount x sizeof(float)) + (XApuConnectInputParameters::maxFrameCountPerOutput x ChannelCount x sizeof(float))
ChannelCount = 1 ou 2
XApuConnectInputParameters::maxFrameCountPerOutput = 256, 480, 512, 960 ou 1024.

Comentários

Usado por XApuDecodeConvertActivateCommand para os parâmetros de ativação de decodificação e conversão. Para obter informações sobre os membros de XApuCommandId, consulte XApuCommandId. Para obter informações sobre as constantes de XApuProcessType, consulte XApuProcessType.

Requisitos

Cabeçalho: xapu.h Plataformas compatíveis: XBOX Series X|S

Confira também

XApuEnqueueCommand
XAPU
Last modified on October 6, 2026