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.
[in] pInputProcessParameters
Matriz de entrada de estruturas de XAPO_PROCESS_BUFFER_PARAMETERS .
[in] OutputProcessParameterCount
Número de elementos em pOutputProcessParameters.
[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 |