Compartilhar via


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

Executa o código DSP (processamento de sinal digital) do XAPO nos buffers de entrada e saída fornecidos.

Sintaxe

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 em pInputProcessParameters.

Nota Atualmente, o XAudio2 dá suporte a apenas um fluxo de entrada e um fluxo de saída.
 

[in] pInputProcessParameters

Matriz de entrada de estruturas de XAPO_PROCESS_BUFFER_PARAMETERS .

[in] OutputProcessParameterCount

Número de elementos em pOutputProcessParameters.

Nota Atualmente, o XAudio2 dá suporte a apenas um fluxo de entrada e um fluxo de saída.
 

[in, out] pOutputProcessParameters

Matriz de saída de estruturas de XAPO_PROCESS_BUFFER_PARAMETERS . Na entrada, o valor de XAPO_PROCESS_BUFFER_PARAMETERS. ValidFrameCount indica o número de quadros que o XAPO deve gravar no buffer de saída. Na saída, o valor de XAPO_PROCESS_BUFFER_PARAMETERS. ValidFrameCount indica o número real de quadros gravados.

IsEnabled

TRUE para processar normalmente; FALSE para processar por meio de . Consulte Comentários para obter informações adicionais.

Valor retornado

Nenhum

Comentários

As implementações dessa função não devem ser bloqueadas, pois a função é chamada do thread de processamento de áudio em tempo real.

Todo o código que pode causar um atraso, como validação de formato e alocação de memória, deve ser colocado no método IXAPO::LockForProcess , que não é chamado do thread de processamento de áudio em tempo real.

Para processamento in-loco, o parâmetro pInputProcessParameters não será necessariamente o mesmo que pOutputProcessParameters. Em vez disso, seus membros pBuffer apontarão para a mesma memória.

Vários buffers de entrada e saída podem ser usados com XAPOs in-loco, embora a contagem de buffers de entrada precise ser igual à contagem de buffers de saída. Para processamento in-loco quando vários buffers de entrada e saída são usados, o XAPO pode assumir que o número de buffers de entrada é igual ao número de buffers de saída.

Além de gravar no buffer de saída, conforme apropriado, um XAPO é responsável por definir os sinalizadores de buffer do fluxo de saída e a contagem de quadros válida.

Quando IsEnabled é FALSE, o XAPO não deve aplicar seu processamento normal aos buffers de entrada/saída fornecidos durante. Em vez disso, ele deve passar dados da entrada para a saída com o mínimo de modificação possível. Os efeitos que executam a conversão de formato devem continuar a fazê-lo. Os efeitos devem garantir que as transições entre o processamento normal e por meio do não introduzam descontinuidades no sinal.

Ao escrever um método Process , é importante observar que os dados de áudio XAudio2 são intercalados, o que significa que os dados de cada canal são adjacentes para um número de exemplo específico. Por exemplo, se houvesse uma onda de 4 canais sendo reproduzida em uma voz de origem XAudio2, os dados de áudio seriam uma amostra do canal 0, uma amostra do canal 1, uma amostra do canal 2, uma amostra do canal 3 e, em seguida, o próximo exemplo de canais 0, 1, 2, 3 e assim por diante.

Requisitos da plataforma

Windows 10 (XAudio2.9); Windows 8, Windows Phone 8 (XAudio 2.8); SDK do DirectX (XAudio 2.7)

Requisitos

   
Plataforma de Destino Windows
Cabeçalho xapo.h

Confira também

IXAPO