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.

Nota Actualmente, XAudio2 solo admite un flujo de entrada y un flujo de salida.
 

[in] pInputProcessParameters

Matriz de entrada de estructuras de XAPO_PROCESS_BUFFER_PARAMETERS .

[in] OutputProcessParameterCount

Número de elementos de pOutputProcessParameters.

Nota Actualmente, XAudio2 solo admite un flujo de entrada y un flujo de salida.
 

[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

Consulte también

IXAPO