Méthode IXAPO::P rocess (xapo.h)

Exécute le code de traitement du signal numérique (DSP) du XAPO sur les tampons d’entrée et de sortie donnés.

Syntaxe

void Process(
  [in]      UINT32                               InputProcessParameterCount,
  [in]      const XAPO_PROCESS_BUFFER_PARAMETERS *pInputProcessParameters,
  [in]      UINT32                               OutputProcessParameterCount,
  [in, out] XAPO_PROCESS_BUFFER_PARAMETERS       *pOutputProcessParameters,
            BOOL                                 IsEnabled
);

Paramètres

[in] InputProcessParameterCount

Nombre d’éléments dans pInputProcessParameters.

Note XAudio2 ne prend actuellement en charge qu’un seul flux d’entrée et un seul flux de sortie.
 

[in] pInputProcessParameters

Tableau d’entrée de structures XAPO_PROCESS_BUFFER_PARAMETERS .

[in] OutputProcessParameterCount

Nombre d’éléments dans pOutputProcessParameters.

Note XAudio2 ne prend actuellement en charge qu’un seul flux d’entrée et un seul flux de sortie.
 

[in, out] pOutputProcessParameters

Tableau de sortie de structures XAPO_PROCESS_BUFFER_PARAMETERS . En entrée, la valeur de XAPO_PROCESS_BUFFER_PARAMETERS. ValidFrameCount indique le nombre d’images que le XAPO doit écrire dans la mémoire tampon de sortie. En sortie, la valeur de XAPO_PROCESS_BUFFER_PARAMETERS. ValidFrameCount indique le nombre réel d’images écrites.

IsEnabled

TRUE pour traiter normalement ; FALSE pour traiter l’utilisation. Pour plus d’informations, consultez Remarques.

Valeur de retour

None

Remarques

Les implémentations de cette fonction ne doivent pas bloquer, car la fonction est appelée à partir du thread de traitement audio en temps réel.

Tout le code susceptible d’entraîner un retard, comme la validation de format et l’allocation de mémoire, doit être placé dans la méthode IXAPO::LockForProcess , qui n’est pas appelée à partir du thread de traitement audio en temps réel.

Pour le traitement sur place, le paramètre pInputProcessParameters n’est pas nécessairement identique à pOutputProcessParameters. Au lieu de cela, leurs membres pBuffer pointeront vers la même mémoire.

Plusieurs mémoires tampons d’entrée et de sortie peuvent être utilisées avec des objets XPO sur place, bien que le nombre de mémoires tampons d’entrée soit égal au nombre de mémoires tampons de sortie. Pour le traitement sur place lorsque plusieurs tampons d’entrée et de sortie sont utilisés, le XAPO peut supposer que le nombre de mémoires tampons d’entrée est égal au nombre de mémoires tampons de sortie.

En plus d’écrire dans la mémoire tampon de sortie, le cas échéant, un XAPO est chargé de définir les indicateurs de mémoire tampon du flux de sortie et le nombre d’images valides.

Quand IsEnabled a la valeur FALSE, le XAPO ne doit pas appliquer son traitement normal aux tampons d’entrée/sortie donnés pendant. Au lieu de cela, il doit passer des données d’entrée à sortie avec le moins de modifications possible. Les effets qui effectuent la conversion de format doivent continuer à le faire. Les effets doivent garantir que les transitions entre le traitement normal et le traitement intermédiaire n’introduisent pas de discontinuités dans le signal.

Lors de l’écriture d’une méthode Process , il est important de noter que les données audio XAudio2 sont entrelacées, ce qui signifie que les données de chaque canal sont adjacentes pour un numéro d’exemple particulier. Par exemple, si une onde à 4 canaux est lue dans une voix source XAudio2, les données audio sont un exemple de canal 0, un exemple de canal 1, un exemple de canal 2, un exemple de canal 3, puis l’exemple suivant de canaux 0, 1, 2, 3, etc.

Configuration requise pour la plateforme

Windows 10 (XAudio2.9); Windows 8, Windows Phone 8 (XAudio 2.8) ; Kit de développement logiciel (SDK) DirectX (XAudio 2.7)

Spécifications

   
Plateforme cible Windows
En-tête xapo.h

Voir aussi

IXAPO