aboutsummaryrefslogtreecommitdiff
path: root/api
diff options
context:
space:
mode:
authorSam Zackrisson <saza@webrtc.org>2020-05-12 10:48:19 +0200
committerCommit Bot <commit-bot@chromium.org>2020-05-12 10:56:18 +0000
commitb0bd0708d6542ce837d0499975fab7b22d2fad20 (patch)
tree7901d490693ddf38b28ed5cc81071e004155528b /api
parent5c1a56540b53cc464c0d7e151cb338a92186034f (diff)
downloadwebrtc-b0bd0708d6542ce837d0499975fab7b22d2fad20.tar.gz
Surface ResidualEchoDetector creation to API
This allows users to inject the residual echo detector, as a step toward making it an optional part of compilation. Bug: webrtc:11292, webrtc:11539 Change-Id: I7fcc8dbaced67a82851cd6cdcbc115eb01c21fcf Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/174040 Reviewed-by: Per Ã…hgren <peah@webrtc.org> Reviewed-by: Karl Wiberg <kwiberg@webrtc.org> Commit-Queue: Sam Zackrisson <saza@webrtc.org> Cr-Commit-Position: refs/heads/master@{#31222}
Diffstat (limited to 'api')
-rw-r--r--api/DEPS4
-rw-r--r--api/audio/BUILD.gn14
-rw-r--r--api/audio/echo_detector_creator.cc21
-rw-r--r--api/audio/echo_detector_creator.h26
4 files changed, 65 insertions, 0 deletions
diff --git a/api/DEPS b/api/DEPS
index 1e92b12281..1212b43be8 100644
--- a/api/DEPS
+++ b/api/DEPS
@@ -246,6 +246,10 @@ specific_include_rules = {
"+modules/audio_processing/include/audio_processing.h",
],
+ "echo_detector_creator\.h": [
+ "+modules/audio_processing/include/audio_processing.h",
+ ],
+
"fake_frame_decryptor\.h": [
"+rtc_base/ref_counted_object.h",
],
diff --git a/api/audio/BUILD.gn b/api/audio/BUILD.gn
index 2405d9d041..4c8004ed2d 100644
--- a/api/audio/BUILD.gn
+++ b/api/audio/BUILD.gn
@@ -87,3 +87,17 @@ rtc_source_set("echo_control") {
sources = [ "echo_control.h" ]
deps = [ "../../rtc_base:checks" ]
}
+
+rtc_source_set("echo_detector_creator") {
+ visibility = [ "*" ]
+ sources = [
+ "echo_detector_creator.cc",
+ "echo_detector_creator.h",
+ ]
+ deps = [
+ "../../api:scoped_refptr",
+ "../../modules/audio_processing:api",
+ "../../modules/audio_processing:audio_processing",
+ "../../rtc_base:refcount",
+ ]
+}
diff --git a/api/audio/echo_detector_creator.cc b/api/audio/echo_detector_creator.cc
new file mode 100644
index 0000000000..4c3d9e61fe
--- /dev/null
+++ b/api/audio/echo_detector_creator.cc
@@ -0,0 +1,21 @@
+/*
+ * Copyright (c) 2020 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.
+ */
+#include "api/audio/echo_detector_creator.h"
+
+#include "modules/audio_processing/residual_echo_detector.h"
+#include "rtc_base/ref_counted_object.h"
+
+namespace webrtc {
+
+rtc::scoped_refptr<EchoDetector> CreateEchoDetector() {
+ return new rtc::RefCountedObject<ResidualEchoDetector>();
+}
+
+} // namespace webrtc
diff --git a/api/audio/echo_detector_creator.h b/api/audio/echo_detector_creator.h
new file mode 100644
index 0000000000..5ba171de97
--- /dev/null
+++ b/api/audio/echo_detector_creator.h
@@ -0,0 +1,26 @@
+/*
+ * Copyright (c) 2020 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_DETECTOR_CREATOR_H_
+#define API_AUDIO_ECHO_DETECTOR_CREATOR_H_
+
+#include "api/scoped_refptr.h"
+#include "modules/audio_processing/include/audio_processing.h"
+
+namespace webrtc {
+
+// Returns an instance of the WebRTC implementation of a residual echo detector.
+// It can be provided to the webrtc::AudioProcessingBuilder to obtain the
+// usual residual echo metrics.
+rtc::scoped_refptr<EchoDetector> CreateEchoDetector();
+
+} // namespace webrtc
+
+#endif // API_AUDIO_ECHO_DETECTOR_CREATOR_H_