XApuDecodeConvertActivateCommand
Définit les paramètres d’activation du décodage ou du décodage-conversionSyntaxe
Membres
idType : 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, 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 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 et XApuProcessType::ConvertPCM La mémoire tampon de traitement est prélevée dans XApuConnectOutputParameters::baseData et transmise au XAPU via 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 XApuProcessType::DecodeConvertOpus. Dans le cas 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 également les données converties qui ne sont pas encore prêtes à être produites en sortie, pour les types XApuProcessType::DecodeConvertOpus et XApuProcessType::ConvertPCM. 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 Le segment de sortie n’est pas utilisé lorsque XApuCommandOptions::Flush est défini, car le XAPU produit les données en sortie 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 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 x ChannelCount x sizeof(float))
ChannelCount = 1 ou 2 XApuConnectInputParameters::maxFrameCountPerOutput = 256, 480, 512, 960 ou 1024.
Remarques
Utilisé parXApuDecodeConvertActivateCommand pour les paramètres d’activation du décodage et de la 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|SVoir aussi
XApuEnqueueCommandXAPU
