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.
[in] pInputProcessParameters
Tableau d’entrée de structures XAPO_PROCESS_BUFFER_PARAMETERS .
[in] OutputProcessParameterCount
Nombre d’éléments dans pOutputProcessParameters.
[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 |