Skip to main content

XApuDecodeConvertActivateCommand

Définit les paramètres d’activation de décodage ou de décodage-conversion

Syntaxe

Membres

id
Type : XApuCommandId
Spécifie les paramètres de commande de base à envoyer au matériel pour traitement. Le même XApuCommandId sera affecté à XApuResult::id. 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 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 et XApuProcessType::ConvertPCM La mémoire tampon de traitement est découpée dans XApuConnectOutputParameters::baseData et transmise à la XAPU au moyen de la commande XApuCommandType::Activate à l’aide des arguments XApuDecodeConvertActivateCommand::processingBuffer et XApuDecodeConvertActivateCommand::processingBufferLength 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. Dans le cas de XApuProcessType::ConvertPCM, 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 et XApuProcessType::ConvertPCM. 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 Le segment de sortie n’est pas utilisé lorsque XApuCommandOptions::Flush est défini, puisque la XAPU émettra les données même si elles comptent moins de XApuConnectInputParameters::maxFrameCountPerOutput trames. La longueur du segment de sortie est XApuConnectInputParameters::maxFrameCountPerOutput x ChannelCount x sizeof(float) XApuDecodeConvertActivateCommand::processingBufferLength 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 x ChannelCount x sizeof(float))
ChannelCount = 1 ou 2
XApuConnectInputParameters::maxFrameCountPerOutput = 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. Pour plus d’informations sur les constantes XApuProcessType, consultez XApuProcessType.

Configuration requise

En-tête : xapu.h Plateformes prises en charge : XBOX Series X|S

Voir aussi

XApuEnqueueCommand
XAPU
Last modified on October 6, 2026