Move echo_control.h to api/audio
Bug: webrtc:8844 Change-Id: I5c2406c43ade786c26e12b3c847fed8424283df0 Reviewed-on: https://webrtc-review.googlesource.com/53700 Reviewed-by: Karl Wiberg <kwiberg@webrtc.org> Commit-Queue: Gustaf Ullberg <gustaf@webrtc.org> Cr-Commit-Position: refs/heads/master@{#22031}
This commit is contained in:
committed by
Commit Bot
parent
75b57d3bb8
commit
fd4ce50423
@ -228,6 +228,15 @@ rtc_source_set("aec3_config") {
|
||||
deps = []
|
||||
}
|
||||
|
||||
rtc_source_set("echo_control") {
|
||||
visibility = [ "*" ]
|
||||
sources = [
|
||||
"audio/echo_control.h",
|
||||
]
|
||||
|
||||
deps = []
|
||||
}
|
||||
|
||||
rtc_source_set("audio_options_api") {
|
||||
visibility = [ "*" ]
|
||||
sources = [
|
||||
|
||||
52
api/audio/echo_control.h
Normal file
52
api/audio/echo_control.h
Normal file
@ -0,0 +1,52 @@
|
||||
/*
|
||||
* Copyright (c) 2018 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 API_AUDIO_ECHO_CONTROL_H_
|
||||
#define API_AUDIO_ECHO_CONTROL_H_
|
||||
|
||||
#include <memory>
|
||||
|
||||
namespace webrtc {
|
||||
|
||||
class AudioBuffer;
|
||||
|
||||
// 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;
|
||||
};
|
||||
} // namespace webrtc
|
||||
|
||||
#endif // API_AUDIO_ECHO_CONTROL_H_
|
||||
Reference in New Issue
Block a user