Метод IXAPO::P rocess (xapo.h)

Выполняет код цифровой обработки сигналов (DSP) XAPO в заданных входных и выходных буферах.

Синтаксис

void Process(
  [in]      UINT32                               InputProcessParameterCount,
  [in]      const XAPO_PROCESS_BUFFER_PARAMETERS *pInputProcessParameters,
  [in]      UINT32                               OutputProcessParameterCount,
  [in, out] XAPO_PROCESS_BUFFER_PARAMETERS       *pOutputProcessParameters,
            BOOL                                 IsEnabled
);

Параметры

[in] InputProcessParameterCount

Количество элементов в pInputProcessParameters.

Примечание В настоящее время XAudio2 поддерживает только один входной и один выходной поток.
 

[in] pInputProcessParameters

Входной массив структур XAPO_PROCESS_BUFFER_PARAMETERS .

[in] OutputProcessParameterCount

Количество элементов в pOutputProcessParameters.

Примечание В настоящее время XAudio2 поддерживает только один входной и один выходной поток.
 

[in, out] pOutputProcessParameters

Выходной массив структур XAPO_PROCESS_BUFFER_PARAMETERS . На входе значение XAPO_PROCESS_BUFFER_PARAMETERS. ValidFrameCount указывает количество кадров, которые XAPO должен записать в выходной буфер. В выходных данных значение XAPO_PROCESS_BUFFER_PARAMETERS. ValidFrameCount указывает фактическое количество записанных кадров.

IsEnabled

Значение TRUE для нормальной обработки; False для обработки через. Дополнительные сведения см. в разделе Примечания.

Возвращаемое значение

None

Remarks

Реализации этой функции не должны блокироваться, так как функция вызывается из потока обработки звука в реальном времени.

Весь код, который может вызвать задержку, например проверка формата и выделение памяти, следует поместить в метод IXAPO::LockForProcess , который не вызывается из потока обработки звука в реальном времени.

Для обработки на месте параметр pInputProcessParameters не обязательно будет совпадать с параметром pOutputProcessParameters. Скорее, их члены pBuffer будут указывать на ту же память.

С XAPOS на месте можно использовать несколько входных и выходных буферов, хотя число входных буферов должно равняться количеству выходного буфера. Для обработки на месте при использовании нескольких входных и выходных буферов XAPO может предполагать, что количество входных буферов равно количеству выходных буферов.

Помимо записи в выходной буфер, XAPO отвечает за установку флагов буфера выходного потока и допустимого количества кадров.

Если isEnabled имеет значение FALSE, XAPO не должен применять свою обычную обработку к заданным входным и выходным буферам во время. Вместо этого он должен передавать данные из входных данных в выходные данные с минимальными изменениями. Эффекты, выполняющие преобразование формата, должны продолжать делать это. Эффекты должны гарантировать, что переходы между нормальной обработкой и обработкой через не вводят разрывы в сигнале.

При написании метода Process важно отметить, что звуковые данные XAudio2 чередуются. Это означает, что данные из каждого канала являются смежными для определенного номера выборки. Например, если в исходном голосе XAudio2 воспроизводится 4-канальный сигнал, звуковые данные будут представлять собой образец канала 0, образец канала 1, образец канала 2, образец канала 3, а затем следующая выборка каналов 0, 1, 2, 3 и т. д.

Требования к платформе

Windows 10 (XAudio2.9); Windows 8, Windows Phone 8 (XAudio 2.8); Пакет SDK Для DirectX (XAudio 2.7)

Требования

   
Целевая платформа Windows
Header xapo.h

См. также раздел

IXAPO