Move EchoControl out of audio_processing.h.
Bug: webrtc:8844
Change-Id: Id05c285e0e377774c79da8552959733f823d8bb4
Reviewed-on: https://webrtc-review.googlesource.com/47900
Reviewed-by: Per Ã…hgren <peah@webrtc.org>
Commit-Queue: Gustaf Ullberg <gustaf@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#21898}
diff --git a/modules/audio_processing/include/audio_processing.h b/modules/audio_processing/include/audio_processing.h
index 5185a1f..2f4cdb5 100644
--- a/modules/audio_processing/include/audio_processing.h
+++ b/modules/audio_processing/include/audio_processing.h
@@ -26,6 +26,7 @@
#include "modules/audio_processing/beamformer/array_util.h"
#include "modules/audio_processing/include/audio_processing_statistics.h"
#include "modules/audio_processing/include/config.h"
+#include "modules/audio_processing/include/echo_control.h"
#include "rtc_base/arraysize.h"
#include "rtc_base/deprecation.h"
#include "rtc_base/platform_file.h"
@@ -48,7 +49,6 @@
class EchoCancellation;
class EchoControlMobile;
-class EchoControlFactory;
class EchoDetector;
class GainControl;
class HighPassFilter;
@@ -913,37 +913,6 @@
virtual ~EchoControlMobile() {}
};
-// Interface for an acoustic echo cancellation (AEC) submodule.
-class EchoControl {
- public:
- // Analysis (not changing) of the render signal.
- virtual void AnalyzeRender(AudioBuffer* render) = 0;
-
- // Analysis (not changing) of the capture signal.
- virtual void AnalyzeCapture(AudioBuffer* capture) = 0;
-
- // Processes the capture signal in order to remove the echo.
- virtual void ProcessCapture(AudioBuffer* capture, bool echo_path_change) = 0;
-
- struct Metrics {
- double echo_return_loss;
- double echo_return_loss_enhancement;
- int delay_ms;
- };
-
- // Collect current metrics from the echo controller.
- virtual Metrics GetMetrics() const = 0;
-
- virtual ~EchoControl() {}
-};
-
-// Interface for a factory that creates EchoControllers.
-class EchoControlFactory {
- public:
- virtual std::unique_ptr<EchoControl> Create(int sample_rate_hz) = 0;
- virtual ~EchoControlFactory() = default;
-};
-
// The automatic gain control (AGC) component brings the signal to an
// appropriate range. This is done by applying a digital gain directly and, in
// the analog mode, prescribing an analog gain to be applied at the audio HAL.