Index: webrtc/modules/audio_processing/aec/aec_core_optimized_methods.h |
diff --git a/webrtc/modules/audio_processing/aec/aec_core_optimized_methods.h b/webrtc/modules/audio_processing/aec/aec_core_optimized_methods.h |
new file mode 100644 |
index 0000000000000000000000000000000000000000..d1fb6e892a72b80bcc3ecb62c697f6dda3198cd6 |
--- /dev/null |
+++ b/webrtc/modules/audio_processing/aec/aec_core_optimized_methods.h |
@@ -0,0 +1,79 @@ |
+/* |
+ * Copyright (c) 2016 The WebRTC project authors. All Rights Reserved. |
+ * |
+ * Use of this source code is governed by a BSD-style license |
+ * that can be found in the LICENSE file in the root of the source |
+ * tree. An additional intellectual property rights grant can be found |
+ * in the file PATENTS. All contributing project authors may |
+ * be found in the AUTHORS file in the root of the source tree. |
+ */ |
+ |
+#ifndef WEBRTC_MODULES_AUDIO_PROCESSING_AEC_AEC_CORE_OPTIMIZED_METHODS_H_ |
+#define WEBRTC_MODULES_AUDIO_PROCESSING_AEC_AEC_CORE_OPTIMIZED_METHODS_H_ |
+ |
+#include <memory> |
+ |
+#include "webrtc/modules/audio_processing/aec/aec_core.h" |
+#include "webrtc/typedefs.h" |
+ |
+namespace webrtc { |
+ |
+typedef void (*WebRtcAecFilterFar)( |
+ int num_partitions, |
+ int x_fft_buf_block_pos, |
+ float x_fft_buf[2][kExtendedNumPartitions * PART_LEN1], |
+ float h_fft_buf[2][kExtendedNumPartitions * PART_LEN1], |
+ float y_fft[2][PART_LEN1]); |
+extern WebRtcAecFilterFar WebRtcAec_FilterFar; |
+typedef void (*WebRtcAecScaleErrorSignal)(float mu, |
+ float error_threshold, |
+ float x_pow[PART_LEN1], |
+ float ef[2][PART_LEN1]); |
+extern WebRtcAecScaleErrorSignal WebRtcAec_ScaleErrorSignal; |
+typedef void (*WebRtcAecFilterAdaptation)( |
+ int num_partitions, |
+ int x_fft_buf_block_pos, |
+ float x_fft_buf[2][kExtendedNumPartitions * PART_LEN1], |
+ float e_fft[2][PART_LEN1], |
+ float h_fft_buf[2][kExtendedNumPartitions * PART_LEN1]); |
+extern WebRtcAecFilterAdaptation WebRtcAec_FilterAdaptation; |
+ |
+typedef void (*WebRtcAecOverdrive)(float overdrive_scaling, |
+ const float hNlFb, |
+ float hNl[PART_LEN1]); |
+extern WebRtcAecOverdrive WebRtcAec_Overdrive; |
+ |
+typedef void (*WebRtcAecSuppress)(const float hNl[PART_LEN1], |
+ float efw[2][PART_LEN1]); |
+extern WebRtcAecSuppress WebRtcAec_Suppress; |
+ |
+typedef void (*WebRtcAecComputeCoherence)(const CoherenceState* coherence_state, |
+ float* cohde, |
+ float* cohxd); |
+extern WebRtcAecComputeCoherence WebRtcAec_ComputeCoherence; |
+ |
+typedef void (*WebRtcAecUpdateCoherenceSpectra)(int mult, |
+ bool extended_filter_enabled, |
+ float efw[2][PART_LEN1], |
+ float dfw[2][PART_LEN1], |
+ float xfw[2][PART_LEN1], |
+ CoherenceState* coherence_state, |
+ short* filter_divergence_state, |
+ int* extreme_filter_divergence); |
+extern WebRtcAecUpdateCoherenceSpectra WebRtcAec_UpdateCoherenceSpectra; |
+ |
+typedef int (*WebRtcAecPartitionDelay)( |
+ int num_partitions, |
+ float h_fft_buf[2][kExtendedNumPartitions * PART_LEN1]); |
+extern WebRtcAecPartitionDelay WebRtcAec_PartitionDelay; |
+ |
+typedef void (*WebRtcAecStoreAsComplex)(const float* data, |
+ float data_complex[2][PART_LEN1]); |
+extern WebRtcAecStoreAsComplex WebRtcAec_StoreAsComplex; |
+ |
+typedef void (*WebRtcAecWindowData)(float* x_windowed, const float* x); |
+extern WebRtcAecWindowData WebRtcAec_WindowData; |
+ |
+} // namespace webrtc |
+ |
+#endif // WEBRTC_MODULES_AUDIO_PROCESSING_AEC_AEC_CORE_OPTIMIZED_METHODS_H_ |