Remove inter-arrival delay mode from DelayManager.

Also remove the delay peak detector which is no longer used.

This should be a no-op since relative arrival delay mode is used by default.

Bug: webrtc:10333
Change-Id: Ifa326b762d52f16f9dc5f3da2874139faf1022da
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/164462
Reviewed-by: Ivo Creusen <ivoc@webrtc.org>
Commit-Queue: Jakob Ivarsson <jakobi@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#30179}
diff --git a/modules/audio_coding/BUILD.gn b/modules/audio_coding/BUILD.gn
index 14a1bdc..ec00aad 100644
--- a/modules/audio_coding/BUILD.gn
+++ b/modules/audio_coding/BUILD.gn
@@ -951,8 +951,6 @@
     "neteq/decoder_database.h",
     "neteq/delay_manager.cc",
     "neteq/delay_manager.h",
-    "neteq/delay_peak_detector.cc",
-    "neteq/delay_peak_detector.h",
     "neteq/dsp_helper.cc",
     "neteq/dsp_helper.h",
     "neteq/dtmf_buffer.cc",
@@ -2027,7 +2025,6 @@
       "neteq/decision_logic_unittest.cc",
       "neteq/decoder_database_unittest.cc",
       "neteq/delay_manager_unittest.cc",
-      "neteq/delay_peak_detector_unittest.cc",
       "neteq/dsp_helper_unittest.cc",
       "neteq/dtmf_buffer_unittest.cc",
       "neteq/dtmf_tone_generator_unittest.cc",
@@ -2035,7 +2032,6 @@
       "neteq/histogram_unittest.cc",
       "neteq/merge_unittest.cc",
       "neteq/mock/mock_decoder_database.h",
-      "neteq/mock/mock_delay_peak_detector.h",
       "neteq/mock/mock_dtmf_buffer.h",
       "neteq/mock/mock_dtmf_tone_generator.h",
       "neteq/mock/mock_expand.h",
diff --git a/modules/audio_coding/neteq/decision_logic.cc b/modules/audio_coding/neteq/decision_logic.cc
index 5c746ad..b223b2d 100644
--- a/modules/audio_coding/neteq/decision_logic.cc
+++ b/modules/audio_coding/neteq/decision_logic.cc
@@ -33,11 +33,9 @@
 namespace webrtc {
 
 DecisionLogic::DecisionLogic(NetEqController::Config config)
-    : delay_peak_detector_(config.tick_timer, config.enable_rtx_handling),
-      delay_manager_(DelayManager::Create(config.max_packets_in_buffer,
+    : delay_manager_(DelayManager::Create(config.max_packets_in_buffer,
                                           config.base_min_delay_ms,
                                           config.enable_rtx_handling,
-                                          &delay_peak_detector_,
                                           config.tick_timer)),
       tick_timer_(config.tick_timer),
       disallow_time_stretching_(!config.allow_time_stretching),
diff --git a/modules/audio_coding/neteq/decision_logic.h b/modules/audio_coding/neteq/decision_logic.h
index 899f930..5f1a414 100644
--- a/modules/audio_coding/neteq/decision_logic.h
+++ b/modules/audio_coding/neteq/decision_logic.h
@@ -16,7 +16,6 @@
 #include "api/neteq/tick_timer.h"
 #include "modules/audio_coding/neteq/buffer_level_filter.h"
 #include "modules/audio_coding/neteq/delay_manager.h"
-#include "modules/audio_coding/neteq/delay_peak_detector.h"
 #include "rtc_base/constructor_magic.h"
 #include "rtc_base/experiments/field_trial_parser.h"
 
@@ -97,7 +96,7 @@
   int GetBaseMinimumDelay() const override {
     return delay_manager_->GetBaseMinimumDelay();
   }
-  bool PeakFound() const override { return delay_manager_->PeakFound(); }
+  bool PeakFound() const override { return false; }
 
   int GetFilteredBufferLevel() const override {
     return buffer_level_filter_.filtered_current_level();
@@ -172,7 +171,6 @@
   // Checks if num_consecutive_expands_ >= kMaxWaitForPacket.
   bool MaxWaitForPacket() const;
 
-  DelayPeakDetector delay_peak_detector_;
   std::unique_ptr<DelayManager> delay_manager_;
   BufferLevelFilter buffer_level_filter_;
   const TickTimer* tick_timer_;
diff --git a/modules/audio_coding/neteq/decision_logic_unittest.cc b/modules/audio_coding/neteq/decision_logic_unittest.cc
index d1dd123..a5b6712 100644
--- a/modules/audio_coding/neteq/decision_logic_unittest.cc
+++ b/modules/audio_coding/neteq/decision_logic_unittest.cc
@@ -17,7 +17,6 @@
 #include "modules/audio_coding/neteq/buffer_level_filter.h"
 #include "modules/audio_coding/neteq/decoder_database.h"
 #include "modules/audio_coding/neteq/delay_manager.h"
-#include "modules/audio_coding/neteq/delay_peak_detector.h"
 #include "modules/audio_coding/neteq/packet_buffer.h"
 #include "modules/audio_coding/neteq/statistics_calculator.h"
 #include "test/gtest.h"
diff --git a/modules/audio_coding/neteq/delay_manager.cc b/modules/audio_coding/neteq/delay_manager.cc
index 727c522..0df55c6 100644
--- a/modules/audio_coding/neteq/delay_manager.cc
+++ b/modules/audio_coding/neteq/delay_manager.cc
@@ -19,7 +19,6 @@
 #include <numeric>
 #include <string>
 
-#include "modules/audio_coding/neteq/delay_peak_detector.h"
 #include "modules/audio_coding/neteq/histogram.h"
 #include "modules/include/module_common_types_public.h"
 #include "rtc_base/checks.h"
@@ -103,16 +102,13 @@
 DelayManager::DelayManager(size_t max_packets_in_buffer,
                            int base_minimum_delay_ms,
                            int histogram_quantile,
-                           HistogramMode histogram_mode,
                            bool enable_rtx_handling,
-                           DelayPeakDetector* peak_detector,
                            const TickTimer* tick_timer,
                            std::unique_ptr<Histogram> histogram)
     : first_packet_received_(false),
       max_packets_in_buffer_(max_packets_in_buffer),
       histogram_(std::move(histogram)),
       histogram_quantile_(histogram_quantile),
-      histogram_mode_(histogram_mode),
       tick_timer_(tick_timer),
       base_minimum_delay_ms_(base_minimum_delay_ms),
       effective_minimum_delay_ms_(base_minimum_delay_ms),
@@ -123,13 +119,9 @@
       last_timestamp_(0),
       minimum_delay_ms_(0),
       maximum_delay_ms_(0),
-      peak_detector_(*peak_detector),
       last_pack_cng_or_dtmf_(1),
-      frame_length_change_experiment_(
-          field_trial::IsEnabled("WebRTC-Audio-NetEqFramelengthExperiment")),
       enable_rtx_handling_(enable_rtx_handling),
       extra_delay_ms_(GetExtraDelayMs()) {
-  assert(peak_detector);  // Should never be NULL.
   RTC_CHECK(histogram_);
   RTC_DCHECK_GE(base_minimum_delay_ms_, 0);
 
@@ -140,16 +132,14 @@
     size_t max_packets_in_buffer,
     int base_minimum_delay_ms,
     bool enable_rtx_handling,
-    DelayPeakDetector* peak_detector,
     const TickTimer* tick_timer) {
-  const HistogramMode mode = RELATIVE_ARRIVAL_DELAY;
   DelayHistogramConfig config = GetDelayHistogramConfig();
   const int quantile = config.quantile;
   std::unique_ptr<Histogram> histogram = std::make_unique<Histogram>(
       kDelayBuckets, config.forget_factor, config.start_forget_weight);
   return std::make_unique<DelayManager>(
-      max_packets_in_buffer, base_minimum_delay_ms, quantile, mode,
-      enable_rtx_handling, peak_detector, tick_timer, std::move(histogram));
+      max_packets_in_buffer, base_minimum_delay_ms, quantile,
+      enable_rtx_handling, tick_timer, std::move(histogram));
 }
 
 DelayManager::~DelayManager() {}
@@ -193,19 +183,16 @@
     // Inter-arrival time (IAT) in integer "packet times" (rounding down). This
     // is the value added to the inter-arrival time histogram.
     int iat_ms = packet_iat_stopwatch_->ElapsedMs();
-    int iat_packets = iat_ms / packet_len_ms;
     // Check for discontinuous packet sequence and re-ordering.
     if (IsNewerSequenceNumber(sequence_number, last_seq_no_ + 1)) {
       // Compensate for gap in the sequence numbers. Reduce IAT with the
       // expected extra time due to lost packets.
       int packet_offset =
           static_cast<uint16_t>(sequence_number - last_seq_no_ - 1);
-      iat_packets -= packet_offset;
       iat_ms -= packet_offset * packet_len_ms;
     } else if (!IsNewerSequenceNumber(sequence_number, last_seq_no_)) {
       int packet_offset =
           static_cast<uint16_t>(last_seq_no_ + 1 - sequence_number);
-      iat_packets += packet_offset;
       iat_ms += packet_offset * packet_len_ms;
       reordered = true;
     }
@@ -218,25 +205,13 @@
       relative_delay = CalculateRelativePacketArrivalDelay();
     }
 
-    switch (histogram_mode_) {
-      case RELATIVE_ARRIVAL_DELAY: {
-        const int index = relative_delay.value() / kBucketSizeMs;
-        if (index < histogram_->NumBuckets()) {
-          // Maximum delay to register is 2000 ms.
-          histogram_->Add(index);
-        }
-        break;
-      }
-      case INTER_ARRIVAL_TIME: {
-        // Saturate IAT between 0 and maximum value.
-        iat_packets =
-            std::max(std::min(iat_packets, histogram_->NumBuckets() - 1), 0);
-        histogram_->Add(iat_packets);
-        break;
-      }
+    const int index = relative_delay.value() / kBucketSizeMs;
+    if (index < histogram_->NumBuckets()) {
+      // Maximum delay to register is 2000 ms.
+      histogram_->Add(index);
     }
     // Calculate new |target_level_| based on updated statistics.
-    target_level_ = CalculateTargetLevel(iat_packets, reordered);
+    target_level_ = CalculateTargetLevel();
 
     LimitTargetLevel();
   }  // End if (packet_len_ms > 0).
@@ -310,32 +285,15 @@
   target_level_ = std::max(target_level_, 1 << 8);
 }
 
-int DelayManager::CalculateTargetLevel(int iat_packets, bool reordered) {
+int DelayManager::CalculateTargetLevel() {
   int limit_probability = histogram_quantile_;
 
   int bucket_index = histogram_->Quantile(limit_probability);
-  int target_level;
-  switch (histogram_mode_) {
-    case RELATIVE_ARRIVAL_DELAY: {
-      target_level = 1;
-      if (packet_len_ms_ > 0) {
-        target_level += bucket_index * kBucketSizeMs / packet_len_ms_;
-      }
-      base_target_level_ = target_level;
-      break;
-    }
-    case INTER_ARRIVAL_TIME: {
-      target_level = std::max(bucket_index, 1);
-      base_target_level_ = target_level;
-      // Update detector for delay peaks.
-      bool delay_peak_found =
-          peak_detector_.Update(iat_packets, reordered, target_level);
-      if (delay_peak_found) {
-        target_level = std::max(target_level, peak_detector_.MaxPeakHeight());
-      }
-      break;
-    }
+  int target_level = 1;
+  if (packet_len_ms_ > 0) {
+    target_level += bucket_index * kBucketSizeMs / packet_len_ms_;
   }
+  base_target_level_ = target_level;
 
   // Sanity check. |target_level| must be strictly positive.
   target_level = std::max(target_level, 1);
@@ -353,14 +311,8 @@
     RTC_LOG_F(LS_ERROR) << "length_ms = " << length_ms;
     return -1;
   }
-  if (histogram_mode_ == INTER_ARRIVAL_TIME &&
-      frame_length_change_experiment_ && packet_len_ms_ != length_ms &&
-      packet_len_ms_ > 0) {
-    histogram_->Scale(packet_len_ms_, length_ms);
-  }
 
   packet_len_ms_ = length_ms;
-  peak_detector_.SetPacketAudioLength(packet_len_ms_);
   packet_iat_stopwatch_ = tick_timer_->GetNewStopwatch();
   last_pack_cng_or_dtmf_ = 1;  // TODO(hlundin): Legacy. Remove?
   return 0;
@@ -368,7 +320,6 @@
 
 void DelayManager::Reset() {
   packet_len_ms_ = 0;  // Packet size unknown.
-  peak_detector_.Reset();
   histogram_->Reset();
   delay_history_.clear();
   base_target_level_ = 4;
@@ -377,10 +328,6 @@
   last_pack_cng_or_dtmf_ = 1;
 }
 
-bool DelayManager::PeakFound() const {
-  return peak_detector_.peak_found();
-}
-
 void DelayManager::ResetPacketIatCount() {
   packet_iat_stopwatch_ = tick_timer_->GetNewStopwatch();
 }
diff --git a/modules/audio_coding/neteq/delay_manager.h b/modules/audio_coding/neteq/delay_manager.h
index c440447..d7bea9e 100644
--- a/modules/audio_coding/neteq/delay_manager.h
+++ b/modules/audio_coding/neteq/delay_manager.h
@@ -23,22 +23,12 @@
 
 namespace webrtc {
 
-// Forward declaration.
-class DelayPeakDetector;
-
 class DelayManager {
  public:
-  enum HistogramMode {
-    INTER_ARRIVAL_TIME,
-    RELATIVE_ARRIVAL_DELAY,
-  };
-
   DelayManager(size_t max_packets_in_buffer,
                int base_minimum_delay_ms,
                int histogram_quantile,
-               HistogramMode histogram_mode,
                bool enable_rtx_handling,
-               DelayPeakDetector* peak_detector,
                const TickTimer* tick_timer,
                std::unique_ptr<Histogram> histogram);
 
@@ -50,7 +40,6 @@
   static std::unique_ptr<DelayManager> Create(size_t max_packets_in_buffer,
                                               int base_minimum_delay_ms,
                                               bool enable_rtx_handling,
-                                              DelayPeakDetector* peak_detector,
                                               const TickTimer* tick_timer);
 
   virtual ~DelayManager();
@@ -68,7 +57,7 @@
   // Sets target_level_ (in Q8) and returns the same value. Also calculates
   // and updates base_target_level_, which is the target buffer level before
   // taking delay peaks into account.
-  virtual int CalculateTargetLevel(int iat_packets, bool reordered);
+  virtual int CalculateTargetLevel();
 
   // Notifies the DelayManager of how much audio data is carried in each packet.
   // The method updates the DelayPeakDetector too, and resets the inter-arrival
@@ -78,11 +67,6 @@
   // Resets the DelayManager and the associated DelayPeakDetector.
   virtual void Reset();
 
-  // Returns true if peak-mode is active. That is, delay peaks were observed
-  // recently. This method simply asks for the same information from the
-  // DelayPeakDetector object.
-  virtual bool PeakFound() const;
-
   // Reset the inter-arrival time counter to 0.
   virtual void ResetPacketIatCount();
 
@@ -122,7 +106,6 @@
   }
 
   // These accessors are only intended for testing purposes.
-  HistogramMode histogram_mode() const { return histogram_mode_; }
   int histogram_quantile() const { return histogram_quantile_; }
   Histogram* histogram() const { return histogram_.get(); }
 
@@ -163,7 +146,6 @@
   const size_t max_packets_in_buffer_;  // Capacity of the packet buffer.
   std::unique_ptr<Histogram> histogram_;
   const int histogram_quantile_;
-  const HistogramMode histogram_mode_;
   const TickTimer* tick_timer_;
   int base_minimum_delay_ms_;
   // Provides delay which is used by LimitTargetLevel as lower bound on target
@@ -183,9 +165,7 @@
   uint32_t last_timestamp_;  // Timestamp for the last received packet.
   int minimum_delay_ms_;     // Externally set minimum delay.
   int maximum_delay_ms_;     // Externally set maximum allowed delay.
-  DelayPeakDetector& peak_detector_;
   int last_pack_cng_or_dtmf_;
-  const bool frame_length_change_experiment_;
   const bool enable_rtx_handling_;
   int num_reordered_packets_ = 0;  // Number of consecutive reordered packets.
 
diff --git a/modules/audio_coding/neteq/delay_manager_unittest.cc b/modules/audio_coding/neteq/delay_manager_unittest.cc
index 7abc3fb..d60dbeb 100644
--- a/modules/audio_coding/neteq/delay_manager_unittest.cc
+++ b/modules/audio_coding/neteq/delay_manager_unittest.cc
@@ -17,7 +17,6 @@
 #include <memory>
 
 #include "modules/audio_coding/neteq/histogram.h"
-#include "modules/audio_coding/neteq/mock/mock_delay_peak_detector.h"
 #include "modules/audio_coding/neteq/mock/mock_histogram.h"
 #include "modules/audio_coding/neteq/mock/mock_statistics_calculator.h"
 #include "rtc_base/checks.h"
@@ -47,7 +46,6 @@
  protected:
   DelayManagerTest();
   virtual void SetUp();
-  virtual void TearDown();
   void RecreateDelayManager();
   void SetPacketAudioLength(int lengt_ms);
   absl::optional<int> InsertNextPacket();
@@ -56,19 +54,15 @@
   std::unique_ptr<DelayManager> dm_;
   TickTimer tick_timer_;
   MockStatisticsCalculator stats_;
-  MockDelayPeakDetector detector_;
   MockHistogram* mock_histogram_;
   uint16_t seq_no_;
   uint32_t ts_;
   bool enable_rtx_handling_ = false;
   bool use_mock_histogram_ = false;
-  DelayManager::HistogramMode histogram_mode_ =
-      DelayManager::HistogramMode::RELATIVE_ARRIVAL_DELAY;
 };
 
 DelayManagerTest::DelayManagerTest()
     : dm_(nullptr),
-      detector_(&tick_timer_, false),
       seq_no_(0x1234),
       ts_(0x12345678) {}
 
@@ -77,22 +71,19 @@
 }
 
 void DelayManagerTest::RecreateDelayManager() {
-  EXPECT_CALL(detector_, Reset()).Times(1);
   if (use_mock_histogram_) {
     mock_histogram_ = new MockHistogram(kMaxIat, kForgetFactor);
     std::unique_ptr<Histogram> histogram(mock_histogram_);
     dm_ = std::make_unique<DelayManager>(
         kMaxNumberOfPackets, kMinDelayMs, kDefaultHistogramQuantile,
-        histogram_mode_, enable_rtx_handling_, &detector_, &tick_timer_,
-        std::move(histogram));
+        enable_rtx_handling_, &tick_timer_, std::move(histogram));
   } else {
     dm_ = DelayManager::Create(kMaxNumberOfPackets, kMinDelayMs,
-                               enable_rtx_handling_, &detector_, &tick_timer_);
+                               enable_rtx_handling_, &tick_timer_);
   }
 }
 
 void DelayManagerTest::SetPacketAudioLength(int lengt_ms) {
-  EXPECT_CALL(detector_, SetPacketAudioLength(lengt_ms));
   dm_->SetPacketAudioLength(lengt_ms);
 }
 
@@ -109,10 +100,6 @@
   }
 }
 
-void DelayManagerTest::TearDown() {
-  EXPECT_CALL(detector_, Die());
-}
-
 TEST_F(DelayManagerTest, CreateAndDestroy) {
   // Nothing to do here. The test fixture creates and destroys the DelayManager
   // object.
@@ -120,23 +107,10 @@
 
 TEST_F(DelayManagerTest, SetPacketAudioLength) {
   const int kLengthMs = 30;
-  // Expect DelayManager to pass on the new length to the detector object.
-  EXPECT_CALL(detector_, SetPacketAudioLength(kLengthMs)).Times(1);
   EXPECT_EQ(0, dm_->SetPacketAudioLength(kLengthMs));
   EXPECT_EQ(-1, dm_->SetPacketAudioLength(-1));  // Illegal parameter value.
 }
 
-TEST_F(DelayManagerTest, PeakFound) {
-  // Expect DelayManager to pass on the question to the detector.
-  // Call twice, and let the detector return true the first time and false the
-  // second time.
-  EXPECT_CALL(detector_, peak_found())
-      .WillOnce(Return(true))
-      .WillOnce(Return(false));
-  EXPECT_TRUE(dm_->PeakFound());
-  EXPECT_FALSE(dm_->PeakFound());
-}
-
 TEST_F(DelayManagerTest, UpdateNormal) {
   SetPacketAudioLength(kFrameSizeMs);
   // First packet arrival.
@@ -495,8 +469,6 @@
     test::ScopedFieldTrials field_trial(
         "WebRTC-Audio-NetEqDelayHistogram/Enabled-96-0.998/");
     RecreateDelayManager();
-    EXPECT_EQ(DelayManager::HistogramMode::RELATIVE_ARRIVAL_DELAY,
-              dm_->histogram_mode());
     EXPECT_EQ(1030792151, dm_->histogram_quantile());  // 0.96 in Q30.
     EXPECT_EQ(
         32702,
@@ -507,8 +479,6 @@
     test::ScopedFieldTrials field_trial(
         "WebRTC-Audio-NetEqDelayHistogram/Enabled-97.5-0.998/");
     RecreateDelayManager();
-    EXPECT_EQ(DelayManager::HistogramMode::RELATIVE_ARRIVAL_DELAY,
-              dm_->histogram_mode());
     EXPECT_EQ(1046898278, dm_->histogram_quantile());  // 0.975 in Q30.
     EXPECT_EQ(
         32702,
@@ -536,8 +506,7 @@
   }
 }
 
-TEST_F(DelayManagerTest, RelativeArrivalDelayMode) {
-  histogram_mode_ = DelayManager::HistogramMode::RELATIVE_ARRIVAL_DELAY;
+TEST_F(DelayManagerTest, RelativeArrivalDelay) {
   use_mock_histogram_ = true;
   RecreateDelayManager();
 
@@ -561,7 +530,6 @@
 }
 
 TEST_F(DelayManagerTest, MaxDelayHistory) {
-  histogram_mode_ = DelayManager::HistogramMode::RELATIVE_ARRIVAL_DELAY;
   use_mock_histogram_ = true;
   RecreateDelayManager();
 
diff --git a/modules/audio_coding/neteq/delay_peak_detector.cc b/modules/audio_coding/neteq/delay_peak_detector.cc
deleted file mode 100644
index 5669d72..0000000
--- a/modules/audio_coding/neteq/delay_peak_detector.cc
+++ /dev/null
@@ -1,134 +0,0 @@
-/*
- *  Copyright (c) 2012 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_coding/neteq/delay_peak_detector.h"
-
-#include <algorithm>
-
-#include "rtc_base/checks.h"
-#include "system_wrappers/include/field_trial.h"
-
-namespace webrtc {
-
-// The DelayPeakDetector keeps track of severe inter-arrival times, called
-// delay peaks. When a peak is observed, the "height" (the time elapsed since
-// the previous packet arrival) and the peak "period" (the time since the last
-// observed peak) is recorded in a vector. When enough peaks have been observed,
-// peak-mode is engaged and the DelayManager asks the DelayPeakDetector for
-// the worst peak height.
-
-DelayPeakDetector::~DelayPeakDetector() = default;
-
-DelayPeakDetector::DelayPeakDetector(const TickTimer* tick_timer,
-                                     bool ignore_reordered_packets)
-    : peak_found_(false),
-      peak_detection_threshold_(0),
-      tick_timer_(tick_timer),
-      ignore_reordered_packets_(ignore_reordered_packets),
-      frame_length_change_experiment_(
-          field_trial::IsEnabled("WebRTC-Audio-NetEqFramelengthExperiment")) {
-  RTC_DCHECK(!peak_period_stopwatch_);
-}
-
-void DelayPeakDetector::Reset() {
-  peak_period_stopwatch_.reset();
-  peak_found_ = false;
-  peak_history_.clear();
-}
-
-// Calculates the threshold in number of packets.
-void DelayPeakDetector::SetPacketAudioLength(int length_ms) {
-  if (length_ms > 0) {
-    if (frame_length_change_experiment_) {
-      peak_detection_threshold_ = std::max(2, kPeakHeightMs / length_ms);
-    } else {
-      peak_detection_threshold_ = kPeakHeightMs / length_ms;
-    }
-  }
-  if (frame_length_change_experiment_) {
-    peak_history_.clear();
-  }
-}
-
-bool DelayPeakDetector::peak_found() {
-  return peak_found_;
-}
-
-int DelayPeakDetector::MaxPeakHeight() const {
-  int max_height = -1;  // Returns -1 for an empty history.
-  std::list<Peak>::const_iterator it;
-  for (it = peak_history_.begin(); it != peak_history_.end(); ++it) {
-    max_height = std::max(max_height, it->peak_height_packets);
-  }
-  return max_height;
-}
-
-uint64_t DelayPeakDetector::MaxPeakPeriod() const {
-  auto max_period_element = std::max_element(
-      peak_history_.begin(), peak_history_.end(),
-      [](Peak a, Peak b) { return a.period_ms < b.period_ms; });
-  if (max_period_element == peak_history_.end()) {
-    return 0;  // |peak_history_| is empty.
-  }
-  RTC_DCHECK_GT(max_period_element->period_ms, 0);
-  return max_period_element->period_ms;
-}
-
-bool DelayPeakDetector::Update(int inter_arrival_time,
-                               bool reordered,
-                               int target_level) {
-  if (ignore_reordered_packets_ && reordered) {
-    return CheckPeakConditions();
-  }
-  if (inter_arrival_time > target_level + peak_detection_threshold_ ||
-      inter_arrival_time > 2 * target_level) {
-    // A delay peak is observed.
-    if (!peak_period_stopwatch_) {
-      // This is the first peak. Reset the period counter.
-      peak_period_stopwatch_ = tick_timer_->GetNewStopwatch();
-    } else if (peak_period_stopwatch_->ElapsedMs() > 0) {
-      if (peak_period_stopwatch_->ElapsedMs() <= kMaxPeakPeriodMs) {
-        // This is not the first peak, and the period is valid.
-        // Store peak data in the vector.
-        Peak peak_data;
-        peak_data.period_ms = peak_period_stopwatch_->ElapsedMs();
-        peak_data.peak_height_packets = inter_arrival_time;
-        peak_history_.push_back(peak_data);
-        while (peak_history_.size() > kMaxNumPeaks) {
-          // Delete the oldest data point.
-          peak_history_.pop_front();
-        }
-        peak_period_stopwatch_ = tick_timer_->GetNewStopwatch();
-      } else if (peak_period_stopwatch_->ElapsedMs() <= 2 * kMaxPeakPeriodMs) {
-        // Invalid peak due to too long period. Reset period counter and start
-        // looking for next peak.
-        peak_period_stopwatch_ = tick_timer_->GetNewStopwatch();
-      } else {
-        // More than 2 times the maximum period has elapsed since the last peak
-        // was registered. It seams that the network conditions have changed.
-        // Reset the peak statistics.
-        Reset();
-      }
-    }
-  }
-  return CheckPeakConditions();
-}
-
-bool DelayPeakDetector::CheckPeakConditions() {
-  size_t s = peak_history_.size();
-  if (s >= kMinPeaksToTrigger &&
-      peak_period_stopwatch_->ElapsedMs() <= 2 * MaxPeakPeriod()) {
-    peak_found_ = true;
-  } else {
-    peak_found_ = false;
-  }
-  return peak_found_;
-}
-}  // namespace webrtc
diff --git a/modules/audio_coding/neteq/delay_peak_detector.h b/modules/audio_coding/neteq/delay_peak_detector.h
deleted file mode 100644
index dce8bb4..0000000
--- a/modules/audio_coding/neteq/delay_peak_detector.h
+++ /dev/null
@@ -1,78 +0,0 @@
-/*
- *  Copyright (c) 2012 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_CODING_NETEQ_DELAY_PEAK_DETECTOR_H_
-#define MODULES_AUDIO_CODING_NETEQ_DELAY_PEAK_DETECTOR_H_
-
-#include <stdint.h>
-#include <string.h>
-
-#include <list>
-#include <memory>
-
-#include "api/neteq/tick_timer.h"
-#include "rtc_base/constructor_magic.h"
-
-namespace webrtc {
-
-class DelayPeakDetector {
- public:
-  DelayPeakDetector(const TickTimer* tick_timer, bool ignore_reordered_packets);
-  virtual ~DelayPeakDetector();
-  virtual void Reset();
-
-  // Notifies the DelayPeakDetector of how much audio data is carried in each
-  // packet.
-  virtual void SetPacketAudioLength(int length_ms);
-
-  // Returns true if peak-mode is active. That is, delay peaks were observed
-  // recently.
-  virtual bool peak_found();
-
-  // Calculates and returns the maximum delay peak height. Returns -1 if no
-  // delay peaks have been observed recently. The unit is number of packets.
-  virtual int MaxPeakHeight() const;
-
-  // Calculates and returns the maximum delay peak distance in ms (strictly
-  // larger than 0), or 0 if no delay peaks have been observed recently.
-  virtual uint64_t MaxPeakPeriod() const;
-
-  // Updates the DelayPeakDetector with a new inter-arrival time (in packets),
-  // the current target buffer level (needed to decide if a peak is observed or
-  // not) and if the new inter-arrival time includes a compensation for
-  // reordering. Returns true if peak-mode is active, false if not.
-  virtual bool Update(int inter_arrival_time, bool reordered, int target_level);
-
- private:
-  static const size_t kMaxNumPeaks = 8;
-  static const size_t kMinPeaksToTrigger = 2;
-  static const int kPeakHeightMs = 78;
-  static const int kMaxPeakPeriodMs = 10000;
-
-  typedef struct {
-    uint64_t period_ms;
-    int peak_height_packets;
-  } Peak;
-
-  bool CheckPeakConditions();
-
-  std::list<Peak> peak_history_;
-  bool peak_found_;
-  int peak_detection_threshold_;
-  const TickTimer* tick_timer_;
-  std::unique_ptr<TickTimer::Stopwatch> peak_period_stopwatch_;
-  const bool ignore_reordered_packets_;
-  const bool frame_length_change_experiment_;
-
-  RTC_DISALLOW_COPY_AND_ASSIGN(DelayPeakDetector);
-};
-
-}  // namespace webrtc
-#endif  // MODULES_AUDIO_CODING_NETEQ_DELAY_PEAK_DETECTOR_H_
diff --git a/modules/audio_coding/neteq/delay_peak_detector_unittest.cc b/modules/audio_coding/neteq/delay_peak_detector_unittest.cc
deleted file mode 100644
index 6590dc2..0000000
--- a/modules/audio_coding/neteq/delay_peak_detector_unittest.cc
+++ /dev/null
@@ -1,161 +0,0 @@
-/*
- *  Copyright (c) 2012 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.
- */
-
-// Unit tests for DelayPeakDetector class.
-
-#include "modules/audio_coding/neteq/delay_peak_detector.h"
-
-#include "test/gtest.h"
-
-namespace webrtc {
-
-TEST(DelayPeakDetector, CreateAndDestroy) {
-  TickTimer tick_timer;
-  DelayPeakDetector* detector = new DelayPeakDetector(&tick_timer, false);
-  EXPECT_FALSE(detector->peak_found());
-  delete detector;
-}
-
-TEST(DelayPeakDetector, EmptyHistory) {
-  TickTimer tick_timer;
-  DelayPeakDetector detector(&tick_timer, false);
-  EXPECT_EQ(-1, detector.MaxPeakHeight());
-  EXPECT_EQ(0u, detector.MaxPeakPeriod());
-}
-
-// Inject a series of packet arrivals into the detector. Three of the packets
-// have suffered delays. After the third delay peak, peak-mode is expected to
-// start. This should then continue until it is disengaged due to lack of peaks.
-TEST(DelayPeakDetector, TriggerPeakMode) {
-  TickTimer tick_timer;
-  DelayPeakDetector detector(&tick_timer, false);
-  const int kPacketSizeMs = 30;
-  detector.SetPacketAudioLength(kPacketSizeMs);
-
-  // Load up normal arrival times; 0 ms, 30 ms, 60 ms, 90 ms, ...
-  const int kNumPackets = 1000;
-  int arrival_times_ms[kNumPackets];
-  for (int i = 0; i < kNumPackets; ++i) {
-    arrival_times_ms[i] = i * kPacketSizeMs;
-  }
-
-  // Delay three packets.
-  const int kPeakDelayMs = 100;
-  // First delay peak.
-  arrival_times_ms[100] += kPeakDelayMs;
-  // Second delay peak.
-  arrival_times_ms[200] += kPeakDelayMs;
-  // Third delay peak. Trigger peak-mode after this packet.
-  arrival_times_ms[400] += kPeakDelayMs;
-  // The second peak period is the longest, 200 packets.
-  const uint64_t kWorstPeakPeriod = 200 * kPacketSizeMs;
-  int peak_mode_start_ms = arrival_times_ms[400];
-  // Expect to disengage after no peaks are observed for two period times.
-  int peak_mode_end_ms = peak_mode_start_ms + 2 * kWorstPeakPeriod;
-
-  // Load into detector.
-  int time = 0;
-  int next = 1;  // Start with the second packet to get a proper IAT.
-  while (next < kNumPackets) {
-    while (next < kNumPackets && arrival_times_ms[next] <= time) {
-      int iat_packets =
-          (arrival_times_ms[next] - arrival_times_ms[next - 1]) / kPacketSizeMs;
-      const int kTargetBufferLevel = 1;  // Define peaks to be iat > 2.
-      if (time < peak_mode_start_ms || time > peak_mode_end_ms) {
-        EXPECT_FALSE(detector.Update(iat_packets, false, kTargetBufferLevel));
-      } else {
-        EXPECT_TRUE(detector.Update(iat_packets, false, kTargetBufferLevel));
-        EXPECT_EQ(kWorstPeakPeriod, detector.MaxPeakPeriod());
-        EXPECT_EQ(kPeakDelayMs / kPacketSizeMs + 1, detector.MaxPeakHeight());
-      }
-      ++next;
-    }
-    tick_timer.Increment();
-    time += 10;  // Increase time 10 ms.
-  }
-}
-
-// Same test as TriggerPeakMode, but with base target buffer level increased to
-// 2, in order to raise the bar for delay peaks to inter-arrival times > 4.
-// The delay pattern has peaks with delay = 3, thus should not trigger.
-TEST(DelayPeakDetector, DoNotTriggerPeakMode) {
-  TickTimer tick_timer;
-  DelayPeakDetector detector(&tick_timer, false);
-  const int kPacketSizeMs = 30;
-  detector.SetPacketAudioLength(kPacketSizeMs);
-
-  // Load up normal arrival times; 0 ms, 30 ms, 60 ms, 90 ms, ...
-  const int kNumPackets = 1000;
-  int arrival_times_ms[kNumPackets];
-  for (int i = 0; i < kNumPackets; ++i) {
-    arrival_times_ms[i] = i * kPacketSizeMs;
-  }
-
-  // Delay three packets.
-  const int kPeakDelayMs = 100;
-  // First delay peak.
-  arrival_times_ms[100] += kPeakDelayMs;
-  // Second delay peak.
-  arrival_times_ms[200] += kPeakDelayMs;
-  // Third delay peak.
-  arrival_times_ms[400] += kPeakDelayMs;
-
-  // Load into detector.
-  int time = 0;
-  int next = 1;  // Start with the second packet to get a proper IAT.
-  while (next < kNumPackets) {
-    while (next < kNumPackets && arrival_times_ms[next] <= time) {
-      int iat_packets =
-          (arrival_times_ms[next] - arrival_times_ms[next - 1]) / kPacketSizeMs;
-      const int kTargetBufferLevel = 2;  // Define peaks to be iat > 4.
-      EXPECT_FALSE(detector.Update(iat_packets, false, kTargetBufferLevel));
-      ++next;
-    }
-    tick_timer.Increment();
-    time += 10;  // Increase time 10 ms.
-  }
-}
-
-// In situations with reordered packets, the DelayPeakDetector may be updated
-// back-to-back (i.e., without the tick_timer moving) but still with non-zero
-// inter-arrival time. This test is to make sure that this does not cause
-// problems.
-TEST(DelayPeakDetector, ZeroDistancePeaks) {
-  TickTimer tick_timer;
-  DelayPeakDetector detector(&tick_timer, false);
-  const int kPacketSizeMs = 30;
-  detector.SetPacketAudioLength(kPacketSizeMs);
-
-  const int kTargetBufferLevel = 2;  // Define peaks to be iat > 4.
-  const int kInterArrivalTime =
-      3 * kTargetBufferLevel;  // Above peak threshold.
-  EXPECT_FALSE(detector.Update(kInterArrivalTime, false, kTargetBufferLevel));
-  tick_timer.Increment();
-  EXPECT_FALSE(detector.Update(kInterArrivalTime, false, kTargetBufferLevel));
-  // The following would fail if there were non-zero time between the updates.
-  EXPECT_FALSE(detector.Update(kInterArrivalTime, false, kTargetBufferLevel));
-}
-
-TEST(DelayPeakDetector, IgnoreReorderedPacket) {
-  TickTimer tick_timer;
-  DelayPeakDetector detector(&tick_timer, true);
-
-  const int kTargetBufferLevel = 2;  // Define peaks to be iat > 4.
-  const int kInterArrivalTime =
-      3 * kTargetBufferLevel;  // Above peak threshold.
-  EXPECT_FALSE(detector.Update(kInterArrivalTime, false, kTargetBufferLevel));
-  tick_timer.Increment();
-  EXPECT_FALSE(detector.Update(kInterArrivalTime, false, kTargetBufferLevel));
-  tick_timer.Increment();
-  // The following would fail if the packet was not reordered.
-  EXPECT_FALSE(detector.Update(kInterArrivalTime, true, kTargetBufferLevel));
-}
-
-}  // namespace webrtc
diff --git a/modules/audio_coding/neteq/histogram.cc b/modules/audio_coding/neteq/histogram.cc
index d0da16b..15a2394 100644
--- a/modules/audio_coding/neteq/histogram.cc
+++ b/modules/audio_coding/neteq/histogram.cc
@@ -146,58 +146,4 @@
   return buckets_.size();
 }
 
-void Histogram::Scale(int old_bucket_width, int new_bucket_width) {
-  buckets_ = ScaleBuckets(buckets_, old_bucket_width, new_bucket_width);
-}
-
-std::vector<int> Histogram::ScaleBuckets(const std::vector<int>& buckets,
-                                         int old_bucket_width,
-                                         int new_bucket_width) {
-  RTC_DCHECK_GT(old_bucket_width, 0);
-  RTC_DCHECK_GT(new_bucket_width, 0);
-  RTC_DCHECK_EQ(old_bucket_width % 10, 0);
-  RTC_DCHECK_EQ(new_bucket_width % 10, 0);
-  std::vector<int> new_histogram(buckets.size(), 0);
-  int64_t acc = 0;
-  int time_counter = 0;
-  size_t new_histogram_idx = 0;
-  for (size_t i = 0; i < buckets.size(); i++) {
-    acc += buckets[i];
-    time_counter += old_bucket_width;
-    // The bins should be scaled, to ensure the histogram still sums to one.
-    const int64_t scaled_acc = acc * new_bucket_width / time_counter;
-    int64_t actually_used_acc = 0;
-    while (time_counter >= new_bucket_width) {
-      const int64_t old_histogram_val = new_histogram[new_histogram_idx];
-      new_histogram[new_histogram_idx] =
-          rtc::saturated_cast<int>(old_histogram_val + scaled_acc);
-      actually_used_acc += new_histogram[new_histogram_idx] - old_histogram_val;
-      new_histogram_idx =
-          std::min(new_histogram_idx + 1, new_histogram.size() - 1);
-      time_counter -= new_bucket_width;
-    }
-    // Only subtract the part that was succesfully written to the new histogram.
-    acc -= actually_used_acc;
-  }
-  // If there is anything left in acc (due to rounding errors), add it to the
-  // last bin. If we cannot add everything to the last bin we need to add as
-  // much as possible to the bins after the last bin (this is only possible
-  // when compressing a histogram).
-  while (acc > 0 && new_histogram_idx < new_histogram.size()) {
-    const int64_t old_histogram_val = new_histogram[new_histogram_idx];
-    new_histogram[new_histogram_idx] =
-        rtc::saturated_cast<int>(old_histogram_val + acc);
-    acc -= new_histogram[new_histogram_idx] - old_histogram_val;
-    new_histogram_idx++;
-  }
-  RTC_DCHECK_EQ(buckets.size(), new_histogram.size());
-  if (acc == 0) {
-    // If acc is non-zero, we were not able to add everything to the new
-    // histogram, so this check will not hold.
-    RTC_DCHECK_EQ(accumulate(buckets.begin(), buckets.end(), 0ll),
-                  accumulate(new_histogram.begin(), new_histogram.end(), 0ll));
-  }
-  return new_histogram;
-}
-
 }  // namespace webrtc
diff --git a/modules/audio_coding/neteq/histogram.h b/modules/audio_coding/neteq/histogram.h
index 7eb90d9..0567e3f 100644
--- a/modules/audio_coding/neteq/histogram.h
+++ b/modules/audio_coding/neteq/histogram.h
@@ -38,20 +38,12 @@
   // distribution.
   virtual int Quantile(int probability);
 
-  // Apply compression or stretching to the histogram.
-  virtual void Scale(int old_bucket_width, int new_bucket_width);
-
   // Returns the number of buckets in the histogram.
   virtual int NumBuckets() const;
 
   // Returns the probability for each bucket in Q30.
   std::vector<int> buckets() const { return buckets_; }
 
-  // Made public for testing.
-  static std::vector<int> ScaleBuckets(const std::vector<int>& buckets,
-                                       int old_bucket_width,
-                                       int new_bucket_width);
-
   // Accessors only intended for testing purposes.
   int base_forget_factor_for_testing() const { return base_forget_factor_; }
   int forget_factor_for_testing() const { return forget_factor_; }
diff --git a/modules/audio_coding/neteq/histogram_unittest.cc b/modules/audio_coding/neteq/histogram_unittest.cc
index 4df8b48..e30a295 100644
--- a/modules/audio_coding/neteq/histogram_unittest.cc
+++ b/modules/audio_coding/neteq/histogram_unittest.cc
@@ -59,116 +59,6 @@
   }
 }
 
-// Test if the histogram is scaled correctly if the bucket width is decreased.
-TEST(HistogramTest, DownScale) {
-  // Test a straightforward 60 to 20 change.
-  std::vector<int> buckets = {12, 0, 0, 0, 0, 0};
-  std::vector<int> expected_result = {4, 4, 4, 0, 0, 0};
-  std::vector<int> stretched_buckets = Histogram::ScaleBuckets(buckets, 60, 20);
-  EXPECT_EQ(stretched_buckets, expected_result);
-
-  // Test an example where the last bin in the stretched histogram should
-  // contain the sum of the elements that don't fit into the new histogram.
-  buckets = {18, 15, 12, 9, 6, 3, 0};
-  expected_result = {6, 6, 6, 5, 5, 5, 30};
-  stretched_buckets = Histogram::ScaleBuckets(buckets, 60, 20);
-  EXPECT_EQ(stretched_buckets, expected_result);
-
-  // Test a 120 to 60 change.
-  buckets = {18, 16, 14, 4, 0};
-  expected_result = {9, 9, 8, 8, 18};
-  stretched_buckets = Histogram::ScaleBuckets(buckets, 120, 60);
-  EXPECT_EQ(stretched_buckets, expected_result);
-
-  // Test a 120 to 20 change.
-  buckets = {19, 12, 0, 0, 0, 0, 0, 0};
-  expected_result = {3, 3, 3, 3, 3, 3, 2, 11};
-  stretched_buckets = Histogram::ScaleBuckets(buckets, 120, 20);
-  EXPECT_EQ(stretched_buckets, expected_result);
-
-  // Test a 70 to 40 change.
-  buckets = {13, 7, 5, 3, 1, 5, 12, 11, 3, 0, 0, 0};
-  expected_result = {7, 5, 5, 3, 3, 2, 2, 1, 2, 2, 6, 22};
-  stretched_buckets = Histogram::ScaleBuckets(buckets, 70, 40);
-  EXPECT_EQ(stretched_buckets, expected_result);
-
-  // Test a 30 to 20 change.
-  buckets = {13, 7, 5, 3, 1, 5, 12, 11, 3, 0, 0, 0};
-  expected_result = {8, 6, 6, 3, 2, 2, 1, 3, 3, 8, 7, 11};
-  stretched_buckets = Histogram::ScaleBuckets(buckets, 30, 20);
-  EXPECT_EQ(stretched_buckets, expected_result);
-}
-
-// Test if the histogram is scaled correctly if the bucket width is increased.
-TEST(HistogramTest, UpScale) {
-  // Test a 20 to 60 change.
-  std::vector<int> buckets = {12, 11, 10, 3, 2, 1};
-  std::vector<int> expected_result = {33, 6, 0, 0, 0, 0};
-  std::vector<int> compressed_buckets =
-      Histogram::ScaleBuckets(buckets, 20, 60);
-  EXPECT_EQ(compressed_buckets, expected_result);
-
-  // Test a 60 to 120 change.
-  buckets = {18, 16, 14, 4, 1};
-  expected_result = {34, 18, 1, 0, 0};
-  compressed_buckets = Histogram::ScaleBuckets(buckets, 60, 120);
-  EXPECT_EQ(compressed_buckets, expected_result);
-
-  // Test a 20 to 120 change.
-  buckets = {18, 12, 5, 4, 4, 3, 5, 1};
-  expected_result = {46, 6, 0, 0, 0, 0, 0, 0};
-  compressed_buckets = Histogram::ScaleBuckets(buckets, 20, 120);
-  EXPECT_EQ(compressed_buckets, expected_result);
-
-  // Test a 70 to 80 change.
-  buckets = {13, 7, 5, 3, 1, 5, 12, 11, 3};
-  expected_result = {11, 8, 6, 2, 5, 12, 13, 3, 0};
-  compressed_buckets = Histogram::ScaleBuckets(buckets, 70, 80);
-  EXPECT_EQ(compressed_buckets, expected_result);
-
-  // Test a 50 to 110 change.
-  buckets = {13, 7, 5, 3, 1, 5, 12, 11, 3};
-  expected_result = {18, 8, 16, 16, 2, 0, 0, 0, 0};
-  compressed_buckets = Histogram::ScaleBuckets(buckets, 50, 110);
-  EXPECT_EQ(compressed_buckets, expected_result);
-}
-
-// Test if the histogram scaling function handles overflows correctly.
-TEST(HistogramTest, OverflowTest) {
-  // Test a upscale operation that can cause overflow.
-  std::vector<int> buckets = {733544448, 0, 0, 0, 0, 0, 0,
-                              340197376, 0, 0, 0, 0, 0, 0};
-  std::vector<int> expected_result = {733544448, 340197376, 0, 0, 0, 0, 0,
-                                      0,         0,         0, 0, 0, 0, 0};
-  std::vector<int> scaled_buckets = Histogram::ScaleBuckets(buckets, 10, 60);
-  EXPECT_EQ(scaled_buckets, expected_result);
-
-  buckets = {655591163, 39962288, 360736736, 1930514, 4003853, 1782764,
-             114119,    2072996,  0,         2149354, 0};
-  expected_result = {1056290187, 7717131, 2187115, 2149354, 0, 0,
-                     0,          0,       0,       0,       0};
-  scaled_buckets = Histogram::ScaleBuckets(buckets, 20, 60);
-  EXPECT_EQ(scaled_buckets, expected_result);
-
-  // In this test case we will not be able to add everything to the final bin in
-  // the scaled histogram. Check that the last bin doesn't overflow.
-  buckets = {2000000000, 2000000000, 2000000000,
-             2000000000, 2000000000, 2000000000};
-  expected_result = {666666666, 666666666, 666666666,
-                     666666667, 666666667, 2147483647};
-  scaled_buckets = Histogram::ScaleBuckets(buckets, 60, 20);
-  EXPECT_EQ(scaled_buckets, expected_result);
-
-  // In this test case we will not be able to add enough to each of the bins,
-  // so the values should be smeared out past the end of the normal range.
-  buckets = {2000000000, 2000000000, 2000000000,
-             2000000000, 2000000000, 2000000000};
-  expected_result = {2147483647, 2147483647, 2147483647,
-                     2147483647, 2147483647, 1262581765};
-  scaled_buckets = Histogram::ScaleBuckets(buckets, 20, 60);
-  EXPECT_EQ(scaled_buckets, expected_result);
-}
-
 TEST(HistogramTest, ReachSteadyStateForgetFactor) {
   static constexpr int kSteadyStateForgetFactor = (1 << 15) * 0.9993;
   Histogram histogram(100, kSteadyStateForgetFactor, 1.0);
diff --git a/modules/audio_coding/neteq/mock/mock_delay_peak_detector.h b/modules/audio_coding/neteq/mock/mock_delay_peak_detector.h
deleted file mode 100644
index 1613f4c..0000000
--- a/modules/audio_coding/neteq/mock/mock_delay_peak_detector.h
+++ /dev/null
@@ -1,37 +0,0 @@
-/*
- *  Copyright (c) 2012 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_CODING_NETEQ_MOCK_MOCK_DELAY_PEAK_DETECTOR_H_
-#define MODULES_AUDIO_CODING_NETEQ_MOCK_MOCK_DELAY_PEAK_DETECTOR_H_
-
-#include "modules/audio_coding/neteq/delay_peak_detector.h"
-#include "test/gmock.h"
-
-namespace webrtc {
-
-class MockDelayPeakDetector : public DelayPeakDetector {
- public:
-  MockDelayPeakDetector(const TickTimer* tick_timer,
-                        bool ignore_reordered_packets)
-      : DelayPeakDetector(tick_timer, ignore_reordered_packets) {}
-  virtual ~MockDelayPeakDetector() { Die(); }
-  MOCK_METHOD0(Die, void());
-  MOCK_METHOD0(Reset, void());
-  MOCK_METHOD1(SetPacketAudioLength, void(int length_ms));
-  MOCK_METHOD0(peak_found, bool());
-  MOCK_CONST_METHOD0(MaxPeakHeight, int());
-  MOCK_CONST_METHOD0(MaxPeakPeriod, uint64_t());
-  MOCK_METHOD3(Update,
-               bool(int inter_arrival_time, bool reordered, int target_level));
-};
-
-}  // namespace webrtc
-
-#endif  // MODULES_AUDIO_CODING_NETEQ_MOCK_MOCK_DELAY_PEAK_DETECTOR_H_