Método IXAPO::P rocess (xapo.h)
Ejecuta el código de procesamiento de señal digital (DSP) de XAPO en los búferes de entrada y salida especificados.
Sintaxis
void Process(
[in] UINT32 InputProcessParameterCount,
[in] const XAPO_PROCESS_BUFFER_PARAMETERS *pInputProcessParameters,
[in] UINT32 OutputProcessParameterCount,
[in, out] XAPO_PROCESS_BUFFER_PARAMETERS *pOutputProcessParameters,
BOOL IsEnabled
);
Parámetros
[in] InputProcessParameterCount
Número de elementos de pInputProcessParameters.
[in] pInputProcessParameters
Matriz de entrada de estructuras de XAPO_PROCESS_BUFFER_PARAMETERS .
[in] OutputProcessParameterCount
Número de elementos de pOutputProcessParameters.
[in, out] pOutputProcessParameters
Matriz de salida de estructuras de XAPO_PROCESS_BUFFER_PARAMETERS . En la entrada, el valor de XAPO_PROCESS_BUFFER_PARAMETERS. ValidFrameCount indica el número de fotogramas que el XAPO debe escribir en el búfer de salida. En la salida, el valor de XAPO_PROCESS_BUFFER_PARAMETERS. ValidFrameCount indica el número real de fotogramas escritos.
IsEnabled
TRUE para procesar normalmente; FALSE para procesar la limitación. Vea Comentarios para obtener información adicional.
Valor devuelto
None
Observaciones
Las implementaciones de esta función no deben bloquearse, ya que se llama a la función desde el subproceso de procesamiento de audio en tiempo real.
Todo el código que podría provocar un retraso, como la validación de formato y la asignación de memoria, debe colocarse en el método IXAPO::LockForProcess , que no se llama desde el subproceso de procesamiento de audio en tiempo real.
Para el procesamiento en contexto, el parámetro pInputProcessParameters no será necesariamente el mismo que pOutputProcessParameters. En su lugar, sus miembros pBuffer apuntarán a la misma memoria.
Se pueden usar varios búferes de entrada y salida con XAPOs en contexto, aunque el recuento de búferes de entrada debe ser igual al recuento de búferes de salida. Para el procesamiento en contexto cuando se usan varios búferes de entrada y salida, el XAPO puede suponer que el número de búferes de entrada es igual al número de búferes de salida.
Además de escribir en el búfer de salida, según corresponda, un XAPO es responsable de establecer las marcas de búfer del flujo de salida y el recuento de fotogramas válidos.
Cuando IsEnabled es FALSE, el XAPO no debe aplicar su procesamiento normal a los búferes de entrada y salida especificados durante. En su lugar, debe pasar datos de entrada a salida con la menor modificación posible. Los efectos que realizan la conversión de formato deben seguir haciéndolo. Los efectos deben garantizar que las transiciones entre el procesamiento normal y el procesamiento no introducen discontinuidades en la señal.
Al escribir un método Process , es importante tener en cuenta que los datos de audio XAudio2 están intercalados, lo que significa que los datos de cada canal son adyacentes para un número de muestra determinado. Por ejemplo, si hubiera una onda de 4 canales reproduciendo en una voz de origen XAudio2, los datos de audio serían una muestra del canal 0, una muestra del canal 1, una muestra del canal 2, una muestra del canal 3 y, a continuación, la siguiente muestra de canales 0, 1, 2, 3, etc.
Requisitos de la plataforma
Windows 10 (XAudio2.9); Windows 8, Windows Phone 8 (XAudio 2.8); SDK de DirectX (XAudio 2.7)Requisitos
Plataforma de destino | Windows |
Encabezado | xapo.h |