Delete bandwidthsmoother.h.

BUG=webrtc:6424

Review-Url: https://codereview.webrtc.org/2367213004
Cr-Commit-Position: refs/heads/master@{#14498}
diff --git a/webrtc/BUILD.gn b/webrtc/BUILD.gn
index a97d508..034ba3f 100644
--- a/webrtc/BUILD.gn
+++ b/webrtc/BUILD.gn
@@ -336,7 +336,6 @@
       "base/array_view_unittest.cc",
       "base/atomicops_unittest.cc",
       "base/autodetectproxy_unittest.cc",
-      "base/bandwidthsmoother_unittest.cc",
       "base/base64_unittest.cc",
       "base/basictypes_unittest.cc",
       "base/bind_unittest.cc",
diff --git a/webrtc/base/BUILD.gn b/webrtc/base/BUILD.gn
index b8c0a5b..e72215a 100644
--- a/webrtc/base/BUILD.gn
+++ b/webrtc/base/BUILD.gn
@@ -447,8 +447,6 @@
   } else {
     configs += [ ":rtc_base_warnings_config" ]
     sources += [
-      "bandwidthsmoother.cc",
-      "bandwidthsmoother.h",
       "callback.h",
       "fileutils_mock.h",
       "httpserver.cc",
diff --git a/webrtc/base/bandwidthsmoother.cc b/webrtc/base/bandwidthsmoother.cc
deleted file mode 100644
index d48c12e..0000000
--- a/webrtc/base/bandwidthsmoother.cc
+++ /dev/null
@@ -1,86 +0,0 @@
-/*
- *  Copyright 2011 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 "webrtc/base/bandwidthsmoother.h"
-
-#include <limits.h>
-#include <algorithm>
-
-namespace rtc {
-
-BandwidthSmoother::BandwidthSmoother(int initial_bandwidth_guess,
-                                     uint32_t time_between_increase,
-                                     double percent_increase,
-                                     size_t samples_count_to_average,
-                                     double min_sample_count_percent)
-    : time_between_increase_(time_between_increase),
-      percent_increase_(std::max(1.0, percent_increase)),
-      time_at_last_change_(0),
-      bandwidth_estimation_(initial_bandwidth_guess),
-      accumulator_(samples_count_to_average),
-      min_sample_count_percent_(
-          std::min(1.0, std::max(0.0, min_sample_count_percent))) {
-}
-
-BandwidthSmoother::~BandwidthSmoother() = default;
-
-// Samples a new bandwidth measurement
-// returns true if the bandwidth estimation changed
-bool BandwidthSmoother::Sample(uint32_t sample_time, int bandwidth) {
-  if (bandwidth < 0) {
-    return false;
-  }
-
-  accumulator_.AddSample(bandwidth);
-
-  if (accumulator_.count() < static_cast<size_t>(
-          accumulator_.max_count() * min_sample_count_percent_)) {
-    // We have not collected enough samples yet.
-    return false;
-  }
-
-  // Replace bandwidth with the mean of sampled bandwidths.
-  const int mean_bandwidth = static_cast<int>(accumulator_.ComputeMean());
-
-  if (mean_bandwidth < bandwidth_estimation_) {
-    time_at_last_change_ = sample_time;
-    bandwidth_estimation_ = mean_bandwidth;
-    return true;
-  }
-
-  const int old_bandwidth_estimation = bandwidth_estimation_;
-  const double increase_threshold_d = percent_increase_ * bandwidth_estimation_;
-  if (increase_threshold_d > INT_MAX) {
-    // If bandwidth goes any higher we would overflow.
-    return false;
-  }
-
-  const int increase_threshold = static_cast<int>(increase_threshold_d);
-  if (mean_bandwidth < increase_threshold) {
-    time_at_last_change_ = sample_time;
-    // The value of bandwidth_estimation remains the same if we don't exceed
-    // percent_increase_ * bandwidth_estimation_ for at least
-    // time_between_increase_ time.
-  } else if (sample_time >= time_at_last_change_ + time_between_increase_) {
-    time_at_last_change_ = sample_time;
-    if (increase_threshold == 0) {
-      // Bandwidth_estimation_ must be zero. Assume a jump from zero to a
-      // positive bandwidth means we have regained connectivity.
-      bandwidth_estimation_ = mean_bandwidth;
-    } else {
-      bandwidth_estimation_ = increase_threshold;
-    }
-  }
-  // Else don't make a change.
-
-  return old_bandwidth_estimation != bandwidth_estimation_;
-}
-
-}  // namespace rtc
diff --git a/webrtc/base/bandwidthsmoother.h b/webrtc/base/bandwidthsmoother.h
deleted file mode 100644
index eae565ea..0000000
--- a/webrtc/base/bandwidthsmoother.h
+++ /dev/null
@@ -1,60 +0,0 @@
-/*
- *  Copyright 2011 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 WEBRTC_BASE_BANDWIDTHSMOOTHER_H_
-#define WEBRTC_BASE_BANDWIDTHSMOOTHER_H_
-
-#include "webrtc/base/rollingaccumulator.h"
-#include "webrtc/base/timeutils.h"
-
-namespace rtc {
-
-// The purpose of BandwidthSmoother is to smooth out bandwidth
-// estimations so that 'trstate' messages can be triggered when we
-// are "sure" there is sufficient bandwidth.  To avoid frequent fluctuations,
-// we take a slightly pessimistic view of our bandwidth.  We only increase
-// our estimation when we have sampled bandwidth measurements of values
-// at least as large as the current estimation * percent_increase
-// for at least time_between_increase time.  If a sampled bandwidth
-// is less than our current estimation we immediately decrease our estimation
-// to that sampled value.
-// We retain the initial bandwidth guess as our current bandwidth estimation
-// until we have received (min_sample_count_percent * samples_count_to_average)
-// number of samples. Min_sample_count_percent must be in range [0, 1].
-class BandwidthSmoother {
- public:
-  BandwidthSmoother(int initial_bandwidth_guess,
-                    uint32_t time_between_increase,
-                    double percent_increase,
-                    size_t samples_count_to_average,
-                    double min_sample_count_percent);
-  ~BandwidthSmoother();
-
-  // Samples a new bandwidth measurement.
-  // bandwidth is expected to be non-negative.
-  // returns true if the bandwidth estimation changed
-  bool Sample(uint32_t sample_time, int bandwidth);
-
-  int get_bandwidth_estimation() const {
-    return bandwidth_estimation_;
-  }
-
- private:
-  uint32_t time_between_increase_;
-  double percent_increase_;
-  uint32_t time_at_last_change_;
-  int bandwidth_estimation_;
-  RollingAccumulator<int> accumulator_;
-  double min_sample_count_percent_;
-};
-
-}  // namespace rtc
-
-#endif  // WEBRTC_BASE_BANDWIDTHSMOOTHER_H_
diff --git a/webrtc/base/bandwidthsmoother_unittest.cc b/webrtc/base/bandwidthsmoother_unittest.cc
deleted file mode 100644
index 0ac753e..0000000
--- a/webrtc/base/bandwidthsmoother_unittest.cc
+++ /dev/null
@@ -1,122 +0,0 @@
-/*
- *  Copyright 2011 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 <limits.h>
-
-#include "webrtc/base/bandwidthsmoother.h"
-#include "webrtc/base/gunit.h"
-
-namespace rtc {
-
-static const int kTimeBetweenIncrease = 10;
-static const double kPercentIncrease = 1.1;
-static const size_t kSamplesCountToAverage = 2;
-static const double kMinSampleCountPercent = 1.0;
-
-TEST(BandwidthSmootherTest, TestSampleIncrease) {
-  BandwidthSmoother mon(1000,  // initial_bandwidth_guess
-                        kTimeBetweenIncrease,
-                        kPercentIncrease,
-                        kSamplesCountToAverage,
-                        kMinSampleCountPercent);
-
-  int bandwidth_sample = 1000;
-  EXPECT_EQ(bandwidth_sample, mon.get_bandwidth_estimation());
-  bandwidth_sample =
-      static_cast<int>(bandwidth_sample * kPercentIncrease);
-  EXPECT_FALSE(mon.Sample(9, bandwidth_sample));
-  EXPECT_TRUE(mon.Sample(10, bandwidth_sample));
-  EXPECT_EQ(bandwidth_sample, mon.get_bandwidth_estimation());
-  int next_expected_est =
-      static_cast<int>(bandwidth_sample * kPercentIncrease);
-  bandwidth_sample *= 2;
-  EXPECT_TRUE(mon.Sample(20, bandwidth_sample));
-  EXPECT_EQ(next_expected_est, mon.get_bandwidth_estimation());
-}
-
-TEST(BandwidthSmootherTest, TestSampleIncreaseFromZero) {
-  BandwidthSmoother mon(0,  // initial_bandwidth_guess
-                        kTimeBetweenIncrease,
-                        kPercentIncrease,
-                        kSamplesCountToAverage,
-                        kMinSampleCountPercent);
-
-  const int kBandwidthSample = 1000;
-  EXPECT_EQ(0, mon.get_bandwidth_estimation());
-  EXPECT_FALSE(mon.Sample(9, kBandwidthSample));
-  EXPECT_TRUE(mon.Sample(10, kBandwidthSample));
-  EXPECT_EQ(kBandwidthSample, mon.get_bandwidth_estimation());
-}
-
-TEST(BandwidthSmootherTest, TestSampleDecrease) {
-  BandwidthSmoother mon(1000,  // initial_bandwidth_guess
-                        kTimeBetweenIncrease,
-                        kPercentIncrease,
-                        kSamplesCountToAverage,
-                        kMinSampleCountPercent);
-
-  const int kBandwidthSample = 999;
-  EXPECT_EQ(1000, mon.get_bandwidth_estimation());
-  EXPECT_FALSE(mon.Sample(1, kBandwidthSample));
-  EXPECT_EQ(1000, mon.get_bandwidth_estimation());
-  EXPECT_TRUE(mon.Sample(2, kBandwidthSample));
-  EXPECT_EQ(kBandwidthSample, mon.get_bandwidth_estimation());
-}
-
-TEST(BandwidthSmootherTest, TestSampleTooFewSamples) {
-  BandwidthSmoother mon(1000,  // initial_bandwidth_guess
-                        kTimeBetweenIncrease,
-                        kPercentIncrease,
-                        10,  // 10 samples.
-                        0.5);  // 5 min samples.
-
-  const int kBandwidthSample = 500;
-  EXPECT_EQ(1000, mon.get_bandwidth_estimation());
-  EXPECT_FALSE(mon.Sample(1, kBandwidthSample));
-  EXPECT_FALSE(mon.Sample(2, kBandwidthSample));
-  EXPECT_FALSE(mon.Sample(3, kBandwidthSample));
-  EXPECT_FALSE(mon.Sample(4, kBandwidthSample));
-  EXPECT_EQ(1000, mon.get_bandwidth_estimation());
-  EXPECT_TRUE(mon.Sample(5, kBandwidthSample));
-  EXPECT_EQ(kBandwidthSample, mon.get_bandwidth_estimation());
-}
-
-// Disabled for UBSan: https://bugs.chromium.org/p/webrtc/issues/detail?id=5491
-#ifdef UNDEFINED_SANITIZER
-#define MAYBE_TestSampleRollover DISABLED_TestSampleRollover
-#else
-#define MAYBE_TestSampleRollover TestSampleRollover
-#endif
-TEST(BandwidthSmootherTest, MAYBE_TestSampleRollover) {
-  const int kHugeBandwidth = 2000000000;  // > INT_MAX/1.1
-  BandwidthSmoother mon(kHugeBandwidth,
-                        kTimeBetweenIncrease,
-                        kPercentIncrease,
-                        kSamplesCountToAverage,
-                        kMinSampleCountPercent);
-
-  EXPECT_FALSE(mon.Sample(10, INT_MAX));
-  EXPECT_FALSE(mon.Sample(11, INT_MAX));
-  EXPECT_EQ(kHugeBandwidth, mon.get_bandwidth_estimation());
-}
-
-TEST(BandwidthSmootherTest, TestSampleNegative) {
-  BandwidthSmoother mon(1000,  // initial_bandwidth_guess
-                        kTimeBetweenIncrease,
-                        kPercentIncrease,
-                        kSamplesCountToAverage,
-                        kMinSampleCountPercent);
-
-  EXPECT_FALSE(mon.Sample(10, -1));
-  EXPECT_FALSE(mon.Sample(11, -1));
-  EXPECT_EQ(1000, mon.get_bandwidth_estimation());
-}
-
-}  // namespace rtc
diff --git a/webrtc/base/base.gyp b/webrtc/base/base.gyp
index 3609de9..a390838 100644
--- a/webrtc/base/base.gyp
+++ b/webrtc/base/base.gyp
@@ -408,8 +408,6 @@
           },
         }, {
           'sources': [
-            'bandwidthsmoother.cc',
-            'bandwidthsmoother.h',
             'callback.h',
             'fileutils_mock.h',
             'httpserver.cc',