Метод 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.
[in] pInputProcessParameters
Входной массив структур XAPO_PROCESS_BUFFER_PARAMETERS .
[in] OutputProcessParameterCount
Количество элементов в pOutputProcessParameters.
[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 |