IXAPO::P rocess-Methode (xapo.h)
Führt den DSP-Code (Digital Signal Processing) des XAPO auf den angegebenen Eingabe- und Ausgabepuffern aus.
Syntax
void Process(
[in] UINT32 InputProcessParameterCount,
[in] const XAPO_PROCESS_BUFFER_PARAMETERS *pInputProcessParameters,
[in] UINT32 OutputProcessParameterCount,
[in, out] XAPO_PROCESS_BUFFER_PARAMETERS *pOutputProcessParameters,
BOOL IsEnabled
);
Parameter
[in] InputProcessParameterCount
Anzahl der Elemente in pInputProcessParameters.
[in] pInputProcessParameters
Eingabearray von XAPO_PROCESS_BUFFER_PARAMETERS Strukturen.
[in] OutputProcessParameterCount
Anzahl der Elemente in pOutputProcessParameters.
[in, out] pOutputProcessParameters
Ausgabearray von XAPO_PROCESS_BUFFER_PARAMETERS Strukturen. Bei der Eingabe XAPO_PROCESS_BUFFER_PARAMETERS. ValidFrameCount gibt die Anzahl der Frames an, die der XAPO in den Ausgabepuffer schreiben soll. Bei der Ausgabe wird der Wert von XAPO_PROCESS_BUFFER_PARAMETERS. ValidFrameCount gibt die tatsächliche Anzahl der geschriebenen Frames an.
IsEnabled
TRUE, um normal zu verarbeiten; FALSE, um thru zu verarbeiten. Weitere Informationen finden Sie unter Hinweise.
Rückgabewert
Keine
Bemerkungen
Implementierungen dieser Funktion sollten nicht blockiert werden, da die Funktion aus dem Echtzeit-Audioverarbeitungsthread aufgerufen wird.
Der gesamte Code, der zu einer Verzögerung führen könnte, z. B. Formatüberprüfung und Speicherzuordnung, sollte in die IXAPO::LockForProcess-Methode eingefügt werden, die nicht aus dem Echtzeit-Audioverarbeitungsthread aufgerufen wird.
Bei der direkten Verarbeitung ist der pInputProcessParameters-Parameter nicht unbedingt mit pOutputProcessParameters identisch. Stattdessen zeigen ihre pBuffer-Member auf denselben Arbeitsspeicher.
Mehrere Eingabe- und Ausgabepuffer können mit direkten XAPOs verwendet werden, obwohl die Anzahl des Eingabepuffers der Anzahl des Ausgabepuffers entsprechen muss. Bei der direkten Verarbeitung, wenn mehrere Eingabe- und Ausgabepuffer verwendet werden, kann das XAPO davon ausgehen, dass die Anzahl der Eingabepuffer der Anzahl der Ausgabepuffer entspricht.
Zusätzlich zum Schreiben in den Ausgabepuffer ist ein XAPO für das Festlegen der Pufferflags des Ausgabestreams und der gültigen Frameanzahl verantwortlich.
Wenn IsEnabled FALSE ist, sollte der XAPO seine normale Verarbeitung nicht auf die angegebenen Eingabe-/Ausgabepuffer anwenden. Stattdessen sollten Daten so wenig wie möglich von der Eingabe an die Ausgabe übergeben werden. Effekte, die die Formatkonvertierung durchführen, sollten dies weiterhin tun. Effekte müssen sicherstellen, dass Übergänge zwischen Normal- und Durchlaufverarbeitung keine Diskontinuitäten in das Signal einführen.
Beim Schreiben einer Process-Methode ist es wichtig zu beachten, dass XAudio2-Audiodaten verschachtelt sind, was bedeutet, dass Daten aus jedem Kanal für eine bestimmte Beispielnummer nebeneinander stehen. Wenn beispielsweise eine 4-Kanal-Welle in einer XAudio2-Quellstimme wiedergegeben wird, sind die Audiodaten ein Beispiel für Kanal 0, ein Beispiel für Kanal 1, ein Beispiel für Kanal 2, ein Beispiel für Kanal 3 und dann das nächste Beispiel der Kanäle 0, 1, 2, 3 usw.
Plattformanforderungen
Windows 10 (XAudio2.9); Windows 8, Windows Phone 8 (XAudio 2.8); DirectX SDK (XAudio 2.7)Requirements (Anforderungen)
Zielplattform | Windows |
Kopfzeile | xapo.h |