#ifdef UNSAFE_BUFFERS_BUILD
#pragma allow_unsafe_buffers
#endif
#include "third_party/blink/renderer/modules/webaudio/wave_shaper_dsp_kernel.h"
#include <algorithm>
#include <memory>
#include "build/build_config.h"
#include "third_party/blink/renderer/platform/audio/audio_utilities.h"
#include "third_party/blink/renderer/platform/audio/vector_math.h"
#include "third_party/blink/renderer/platform/wtf/math_extras.h"
#include "third_party/blink/renderer/platform/wtf/threading.h"
#if defined(ARCH_CPU_X86_FAMILY)
#include <xmmintrin.h>
#elif defined(CPU_ARM_NEON)
#include <arm_neon.h>
#endif
namespace blink {
WaveShaperDSPKernel::WaveShaperDSPKernel(WaveShaperProcessor* processor)
: … { … }
void WaveShaperDSPKernel::LazyInitializeOversampling() { … }
void WaveShaperDSPKernel::Process(const float* source,
float* destination,
uint32_t frames_to_process) { … }
double WaveShaperDSPKernel::WaveShaperCurveValue(float input,
const float* curve_data,
int curve_length) const { … }
void WaveShaperDSPKernel::WaveShaperCurveValues(float* destination,
const float* source,
uint32_t frames_to_process,
const float* curve_data,
int curve_length) const { … }
void WaveShaperDSPKernel::ProcessCurve(const float* source,
float* destination,
uint32_t frames_to_process) { … }
void WaveShaperDSPKernel::ProcessCurve2x(const float* source,
float* destination,
uint32_t frames_to_process) { … }
void WaveShaperDSPKernel::ProcessCurve4x(const float* source,
float* destination,
uint32_t frames_to_process) { … }
void WaveShaperDSPKernel::Reset() { … }
bool WaveShaperDSPKernel::RequiresTailProcessing() const { … }
double WaveShaperDSPKernel::TailTime() const { … }
double WaveShaperDSPKernel::LatencyTime() const { … }
}