Skip to main content

XDspConnectWithMaximumStreamLimit

Établit une connexion avec le serveur matériel, crée une instance de client XDSP et alloue les ressources nécessaires au traitement. Cette fonction est semblable à l’API XDspConnect, sauf qu’elle accepte deux paramètres supplémentaires, maximumStreamCount et maximumChannelCount, afin de réduire la mémoire globale utilisée par l’API. Il existe une limite globale de 8 clients XDSP actifs simultanément.

Syntaxe

Paramètres

baseBuffer   _In_
Type : float*
Mémoire tampon contiguë allouée par un appelant XDSP pour transmettre les données d’entrée et récupérer les données de sortie. Pour plus de détails, consultez la section Remarques ci-dessous. baseBufferLength   _In_
Type : uint32_t
Longueur de baseBuffer, en octets. Cette longueur doit être d’au moins 64 Ko et d’au plus 500 Mo. aggregateImpulseResponseInSeconds   _In_
Type : uint32_t
Représente la durée globale de toutes les réponses impulsionnelles individuelles qui seront activées simultanément sur ce client. aggregateImpulseResponseInSeconds doit être défini sur une valeur supérieure à zéro pour XDspProcessType::Convolution; sinon, il doit être égal à zéro. Il existe une limite globale de 128 secondes de réponse impulsionnelle agrégée pour l’ensemble des clients XDSP. maximumStreamCount   _In_
Type : uint32_t
Nombre maximal de flux pouvant être actifs à un moment donné pour ce XDspClientHandle. Ce nombre ne peut pas dépasser 256. XDspActivate retourne XDSP_E_NO_DEVICE_RESOURCES si ce nombre est dépassé. maximumChannelCount   _In_
Type : uint32_t
Cette valeur peut être 1 (pour les flux mono) ou 2 (pour les flux stéréo). Cette API retourne E_INVALIDARG si toute autre valeur est utilisée. handle   _Outptr_
Type : XDspClientHandle*
Handle vers un client XDSP qui doit être utilisé pour activer des flux au moyen de XDspActivate et pour déconnecter le client du serveur matériel au moyen de XDspDisconnect.

Valeur de retour

Type : HRESULT Si la méthode réussit, elle retourne S_OK. Si la méthode échoue, elle retourne l’un des codes suivants (liste partielle) :

Remarques

Si l’appel réussit, l’appelant peut utiliser baseBuffer pour transmettre les données d’entrée et récupérer les données de sortie du flux au moyen des paramètres de XDspCommand. Si l’enveloppe est utilisée, cette mémoire tampon doit également tenir compte des mémoires tampons servant à stocker les paramètres d’enveloppe. Consultez Vue d’ensemble de l’enveloppe à l’aide de l’API XDSP pour plus d’informations sur l’enveloppe. Cette fonction doit être appelée avant l’activation des flux XDSP afin d’inscrire un grand bloc de mémoire suffisant pour contenir plusieurs flux audio complets utilisés en entrée, plusieurs mémoires tampons de sortie pour tous les flux XDSP qui seront activés au moyen de XDspActivate, ainsi que plusieurs mémoires tampons de multiplicateurs de blocs qui peuvent être utilisées dans le cadre de XDspCommand pour le type de traitement XDspProcessType::ForwardFourierTransform. Tenez compte des exigences de taille minimale et maximale de cette mémoire tampon, indiquées ci-dessus. Si cet appel réussit, tous les flux XDSP peuvent accéder à n’importe quelle partie de ce bloc de mémoire. Cette mémoire doit être allouée au moyen de XMemAlloc() avec les attributs suivants : XALLOC_MEMTYPE_PHYSICAL_CACHEABLE, XALLOC_PAGESIZE_64KB, XALLOC_ALIGNMENT_64K Ces attributs doivent être définis à l’aide de MAKE_XALLOC_ATTRIBUTES(). En voici un exemple :
Dans l’exemple ci-dessus, allocatorId doit être remplacé par l’ID d’allocateur correct utilisé par le titre. Il incombe à l’appelant de partitionner et de recycler baseBuffer pour contenir différents flux d’entrée et mémoires tampons de sortie pour plusieurs flux. impulseResponse n’a pas besoin de provenir de ce baseBuffer et peut provenir de n’importe quelle mémoire allouée par l’appelant. La mémoire pointée par baseBuffer ne doit pas être libérée tant que XDspConnect n’a pas été appelée. Tous les pointeurs de mémoire transmis à l’API XDSP doivent être alignés sur 16 octets. Si l’appel réussit, un XDspClientHandle valide sera retourné pour être utilisé avec les appels à XDspActivate et à XDspDisconnect.

Configuration requise

En-tête : XDspAudio.h Bibliothèque : Chad.lib Plateformes prises en charge : XBOX Series X|S

Documentation conceptuelle

Voir aussi

XDSP
XDSPConnect
XDspDisconnect
Erreurs XDSP
Vue d’ensemble d’une convolution à flux unique à l’aide de l’API XDSP
Vue d’ensemble d’une FFT/IFFT à flux unique à l’aide de l’API XDSP
Vue d’ensemble d’une convolution à flux unique avec enveloppe à l’aide de l’API XDSP
Last modified on October 6, 2026