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}
This commit is contained in:

committed by
Commit Bot

parent
5c1a56540b
commit
b0bd0708d6
4
api/DEPS
4
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",
|
||||
],
|
||||
|
@ -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",
|
||||
]
|
||||
}
|
||||
|
21
api/audio/echo_detector_creator.cc
Normal file
21
api/audio/echo_detector_creator.cc
Normal file
@ -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
|
26
api/audio/echo_detector_creator.h
Normal file
26
api/audio/echo_detector_creator.h
Normal file
@ -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_
|
@ -373,7 +373,7 @@ webrtc_fuzzer_test("neteq_signal_fuzzer") {
|
||||
webrtc_fuzzer_test("residual_echo_detector_fuzzer") {
|
||||
sources = [ "residual_echo_detector_fuzzer.cc" ]
|
||||
deps = [
|
||||
"../../modules/audio_processing",
|
||||
"../../api/audio:echo_detector_creator",
|
||||
"../../rtc_base:checks",
|
||||
"../../rtc_base:rtc_base_approved",
|
||||
]
|
||||
|
@ -15,7 +15,7 @@
|
||||
#include <bitset>
|
||||
#include <vector>
|
||||
|
||||
#include "modules/audio_processing/residual_echo_detector.h"
|
||||
#include "api/audio/echo_detector_creator.h"
|
||||
#include "rtc_base/checks.h"
|
||||
#include "rtc_base/ref_counted_object.h"
|
||||
|
||||
@ -43,8 +43,7 @@ void FuzzOneInput(const uint8_t* data, size_t size) {
|
||||
read_idx += 2;
|
||||
std::bitset<16> call_order(call_order_int);
|
||||
|
||||
rtc::scoped_refptr<ResidualEchoDetector> echo_detector =
|
||||
new rtc::RefCountedObject<ResidualEchoDetector>();
|
||||
rtc::scoped_refptr<EchoDetector> echo_detector = CreateEchoDetector();
|
||||
std::vector<float> input(1);
|
||||
// Call AnalyzeCaptureAudio once to prevent the flushing of the buffer.
|
||||
echo_detector->AnalyzeCaptureAudio(input);
|
||||
|
Reference in New Issue
Block a user