AEC3: Remove unused code
Bug: webrtc:8671
Change-Id: Ia54cc2eb7f7235cd348a1af216beb3981fac9813
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/136580
Reviewed-by: Gustaf Ullberg <gustaf@webrtc.org>
Commit-Queue: Per Åhgren <peah@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#27928}
diff --git a/modules/audio_processing/aec3/BUILD.gn b/modules/audio_processing/aec3/BUILD.gn
index d41fee6..1f69eb7 100644
--- a/modules/audio_processing/aec3/BUILD.gn
+++ b/modules/audio_processing/aec3/BUILD.gn
@@ -104,8 +104,6 @@
"shadow_filter_update_gain.h",
"signal_dependent_erle_estimator.cc",
"signal_dependent_erle_estimator.h",
- "skew_estimator.cc",
- "skew_estimator.h",
"stationarity_estimator.cc",
"stationarity_estimator.h",
"subband_erle_estimator.cc",
@@ -222,7 +220,6 @@
"reverb_model_estimator_unittest.cc",
"shadow_filter_update_gain_unittest.cc",
"signal_dependent_erle_estimator_unittest.cc",
- "skew_estimator_unittest.cc",
"subtractor_unittest.cc",
"suppression_filter_unittest.cc",
"suppression_gain_unittest.cc",
diff --git a/modules/audio_processing/aec3/skew_estimator.cc b/modules/audio_processing/aec3/skew_estimator.cc
deleted file mode 100644
index a2099fc..0000000
--- a/modules/audio_processing/aec3/skew_estimator.cc
+++ /dev/null
@@ -1,45 +0,0 @@
-/*
- * 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.
- */
-#include "modules/audio_processing/aec3/skew_estimator.h"
-
-#include <algorithm>
-
-namespace webrtc {
-
-SkewEstimator::SkewEstimator(size_t skew_history_size_log2)
- : skew_history_size_log2_(static_cast<int>(skew_history_size_log2)),
- skew_history_(1ULL << skew_history_size_log2_, 0) {}
-
-SkewEstimator::~SkewEstimator() = default;
-
-void SkewEstimator::Reset() {
- skew_ = 0;
- skew_sum_ = 0;
- next_index_ = 0;
- sufficient_skew_stored_ = false;
- std::fill(skew_history_.begin(), skew_history_.end(), 0);
-}
-
-absl::optional<int> SkewEstimator::GetSkewFromCapture() {
- --skew_;
-
- skew_sum_ += skew_ - skew_history_[next_index_];
- skew_history_[next_index_] = skew_;
- if (++next_index_ == skew_history_.size()) {
- next_index_ = 0;
- sufficient_skew_stored_ = true;
- }
-
- const int bias = static_cast<int>(skew_history_.size()) >> 1;
- const int average = (skew_sum_ + bias) >> skew_history_size_log2_;
- return sufficient_skew_stored_ ? absl::optional<int>(average) : absl::nullopt;
-}
-
-} // namespace webrtc
diff --git a/modules/audio_processing/aec3/skew_estimator.h b/modules/audio_processing/aec3/skew_estimator.h
deleted file mode 100644
index 8a457cb..0000000
--- a/modules/audio_processing/aec3/skew_estimator.h
+++ /dev/null
@@ -1,51 +0,0 @@
-/*
- * 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 MODULES_AUDIO_PROCESSING_AEC3_SKEW_ESTIMATOR_H_
-#define MODULES_AUDIO_PROCESSING_AEC3_SKEW_ESTIMATOR_H_
-
-#include <stddef.h>
-#include <vector>
-
-#include "absl/types/optional.h"
-#include "rtc_base/constructor_magic.h"
-
-namespace webrtc {
-
-// Estimator of API call skew between render and capture.
-class SkewEstimator {
- public:
- explicit SkewEstimator(size_t skew_history_size_log2);
- ~SkewEstimator();
-
- // Resets the estimation.
- void Reset();
-
- // Updates the skew data for a render call.
- void LogRenderCall() { ++skew_; }
-
- // Updates and computes the skew at a capture call. Returns an optional which
- // is non-null if a reliable skew has been found.
- absl::optional<int> GetSkewFromCapture();
-
- private:
- const int skew_history_size_log2_;
- std::vector<float> skew_history_;
- int skew_ = 0;
- int skew_sum_ = 0;
- size_t next_index_ = 0;
- bool sufficient_skew_stored_ = false;
-
- RTC_DISALLOW_COPY_AND_ASSIGN(SkewEstimator);
-};
-
-} // namespace webrtc
-
-#endif // MODULES_AUDIO_PROCESSING_AEC3_SKEW_ESTIMATOR_H_
diff --git a/modules/audio_processing/aec3/skew_estimator_unittest.cc b/modules/audio_processing/aec3/skew_estimator_unittest.cc
deleted file mode 100644
index 3e8c13e..0000000
--- a/modules/audio_processing/aec3/skew_estimator_unittest.cc
+++ /dev/null
@@ -1,157 +0,0 @@
-/*
- * Copyright (c) 2017 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 "modules/audio_processing/aec3/skew_estimator.h"
-
-#include "test/gtest.h"
-
-namespace webrtc {
-namespace aec3 {
-
-// Tests that the skew ends up as it should after a skew change.
-TEST(SkewEstimator, SkewChangeAdaptation) {
- constexpr int kNumSkewsLog2 = 7;
- constexpr int kNumSkews = 1 << kNumSkewsLog2;
-
- SkewEstimator estimator(kNumSkewsLog2);
-
- for (int k = 0; k < kNumSkews - 1; ++k) {
- estimator.LogRenderCall();
- auto skew = estimator.GetSkewFromCapture();
- EXPECT_FALSE(skew);
- }
-
- estimator.LogRenderCall();
-
- absl::optional<int> skew;
- for (int k = 0; k < kNumSkews; ++k) {
- estimator.LogRenderCall();
- skew = estimator.GetSkewFromCapture();
- EXPECT_TRUE(skew);
- }
- EXPECT_EQ(1, *skew);
-
- estimator.LogRenderCall();
-
- for (int k = 0; k < kNumSkews; ++k) {
- estimator.LogRenderCall();
- skew = estimator.GetSkewFromCapture();
- EXPECT_TRUE(skew);
- }
- EXPECT_EQ(2, *skew);
-}
-
-// Tests that the skew ends up as it should for a surplus of render calls.
-TEST(SkewEstimator, SkewForSurplusRender) {
- constexpr int kNumSkewsLog2 = 7;
- constexpr int kNumSkews = 1 << kNumSkewsLog2;
-
- SkewEstimator estimator(kNumSkewsLog2);
-
- for (int k = 0; k < kNumSkews - 1; ++k) {
- estimator.LogRenderCall();
- auto skew = estimator.GetSkewFromCapture();
- EXPECT_FALSE(skew);
- }
-
- estimator.LogRenderCall();
-
- absl::optional<int> skew;
- for (int k = 0; k < kNumSkews; ++k) {
- estimator.LogRenderCall();
- skew = estimator.GetSkewFromCapture();
- EXPECT_TRUE(skew);
- }
- EXPECT_EQ(1, *skew);
-}
-
-// Tests that the skew ends up as it should for a surplus of capture calls.
-TEST(SkewEstimator, SkewForSurplusCapture) {
- constexpr int kNumSkewsLog2 = 7;
- constexpr int kNumSkews = 1 << kNumSkewsLog2;
-
- SkewEstimator estimator(kNumSkewsLog2);
-
- for (int k = 0; k < kNumSkews - 1; ++k) {
- estimator.LogRenderCall();
- auto skew = estimator.GetSkewFromCapture();
- EXPECT_FALSE(skew);
- }
-
- absl::optional<int> skew;
- skew = estimator.GetSkewFromCapture();
-
- for (int k = 0; k < kNumSkews; ++k) {
- estimator.LogRenderCall();
- skew = estimator.GetSkewFromCapture();
- EXPECT_TRUE(skew);
- }
- EXPECT_EQ(-1, *skew);
-}
-
-// Tests that the skew estimator returns a null optional when it should.
-TEST(SkewEstimator, NullEstimate) {
- constexpr int kNumSkewsLog2 = 4;
- constexpr int kNumSkews = 1 << kNumSkewsLog2;
-
- SkewEstimator estimator(kNumSkewsLog2);
-
- for (int k = 0; k < kNumSkews - 1; ++k) {
- estimator.LogRenderCall();
- auto skew = estimator.GetSkewFromCapture();
- EXPECT_FALSE(skew);
- }
-
- estimator.LogRenderCall();
- auto skew = estimator.GetSkewFromCapture();
- EXPECT_TRUE(skew);
-
- estimator.Reset();
- for (int k = 0; k < kNumSkews - 1; ++k) {
- estimator.LogRenderCall();
- auto skew = estimator.GetSkewFromCapture();
- EXPECT_FALSE(skew);
- }
-}
-
-// Tests that the skew estimator properly rounds the average skew.
-TEST(SkewEstimator, SkewRounding) {
- constexpr int kNumSkewsLog2 = 4;
- constexpr int kNumSkews = 1 << kNumSkewsLog2;
-
- SkewEstimator estimator(kNumSkewsLog2);
-
- absl::optional<int> skew;
- for (int k = 0; k < kNumSkews; ++k) {
- if (k == kNumSkews - 1) {
- // Reverse call order once.
- skew = estimator.GetSkewFromCapture();
- estimator.LogRenderCall();
- } else {
- // Normal call order.
- estimator.LogRenderCall();
- skew = estimator.GetSkewFromCapture();
- }
- }
- EXPECT_EQ(*skew, 0);
-
- estimator.Reset();
- for (int k = 0; k < kNumSkews; ++k) {
- estimator.LogRenderCall();
- estimator.LogRenderCall();
- estimator.LogRenderCall();
- estimator.GetSkewFromCapture();
- estimator.GetSkewFromCapture();
- skew = estimator.GetSkewFromCapture();
- }
- EXPECT_EQ(*skew, 1);
-}
-} // namespace aec3
-} // namespace webrtc