| 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_
|
|
|