Resolve dependency between rtc_event_log_api and remote_bitrate_estimator

BUG=webrtc:7257

Review-Url: https://codereview.webrtc.org/2800633004
Cr-Commit-Position: refs/heads/master@{#17638}
diff --git a/webrtc/logging/BUILD.gn b/webrtc/logging/BUILD.gn
index 11c816e..6fcab59 100644
--- a/webrtc/logging/BUILD.gn
+++ b/webrtc/logging/BUILD.gn
@@ -23,12 +23,6 @@
 }
 
 rtc_source_set("rtc_event_log_api") {
-  # TODO(kjellander): Remove (bugs.webrtc.org/7257)
-  # Enabling GN check triggers cyclic dependency error:
-  #  //webrtc/logging:rtc_event_log_api ->
-  #  //webrtc/modules/audio_coding:audio_network_adaptor ->
-  #  //webrtc/logging:rtc_event_log_api
-  check_includes = false
   sources = [
     "rtc_event_log/rtc_event_log.h",
   ]
@@ -55,6 +49,7 @@
     "../base:rtc_base_approved",
     "../call:call_interfaces",
     "../modules/audio_coding:audio_network_adaptor",
+    "../modules/remote_bitrate_estimator:remote_bitrate_estimator",
     "../modules/rtp_rtcp",
     "../system_wrappers",
   ]
@@ -89,6 +84,7 @@
       "..:webrtc_common",
       "../call:call_interfaces",
       "../modules/audio_coding:audio_network_adaptor",
+      "../modules/remote_bitrate_estimator:remote_bitrate_estimator",
       "../modules/rtp_rtcp:rtp_rtcp",
       "../system_wrappers",
     ]
@@ -118,6 +114,7 @@
         "../base:rtc_base_tests_utils",
         "../call",
         "../modules/audio_coding:audio_network_adaptor",
+        "../modules/remote_bitrate_estimator:remote_bitrate_estimator",
         "../modules/rtp_rtcp",
         "../system_wrappers:metrics_default",
         "../test:test_support",
diff --git a/webrtc/logging/rtc_event_log/rtc_event_log.cc b/webrtc/logging/rtc_event_log/rtc_event_log.cc
index 68d213e..ffeb9d2 100644
--- a/webrtc/logging/rtc_event_log/rtc_event_log.cc
+++ b/webrtc/logging/rtc_event_log/rtc_event_log.cc
@@ -24,6 +24,7 @@
 #include "webrtc/call/call.h"
 #include "webrtc/logging/rtc_event_log/rtc_event_log_helper_thread.h"
 #include "webrtc/modules/audio_coding/audio_network_adaptor/include/audio_network_adaptor.h"
+#include "webrtc/modules/remote_bitrate_estimator/include/bwe_defines.h"
 #include "webrtc/modules/rtp_rtcp/include/rtp_rtcp_defines.h"
 #include "webrtc/modules/rtp_rtcp/source/byte_io.h"
 #include "webrtc/modules/rtp_rtcp/source/rtcp_packet/app.h"
diff --git a/webrtc/logging/rtc_event_log/rtc_event_log.h b/webrtc/logging/rtc_event_log/rtc_event_log.h
index f842252..a98c71b 100644
--- a/webrtc/logging/rtc_event_log/rtc_event_log.h
+++ b/webrtc/logging/rtc_event_log/rtc_event_log.h
@@ -17,7 +17,6 @@
 #include "webrtc/base/platform_file.h"
 #include "webrtc/call/audio_receive_stream.h"
 #include "webrtc/call/audio_send_stream.h"
-#include "webrtc/modules/remote_bitrate_estimator/include/bwe_defines.h"
 #include "webrtc/video_receive_stream.h"
 #include "webrtc/video_send_stream.h"
 
@@ -34,6 +33,7 @@
 struct AudioEncoderRuntimeConfig;
 
 enum class MediaType;
+enum class BandwidthUsage;
 
 enum PacketDirection { kIncomingPacket = 0, kOutgoingPacket };
 enum ProbeFailureReason {
diff --git a/webrtc/logging/rtc_event_log/rtc_event_log_parser.cc b/webrtc/logging/rtc_event_log/rtc_event_log_parser.cc
index feffff0..a6ff8af 100644
--- a/webrtc/logging/rtc_event_log/rtc_event_log_parser.cc
+++ b/webrtc/logging/rtc_event_log/rtc_event_log_parser.cc
@@ -24,6 +24,7 @@
 #include "webrtc/call/call.h"
 #include "webrtc/logging/rtc_event_log/rtc_event_log.h"
 #include "webrtc/modules/audio_coding/audio_network_adaptor/include/audio_network_adaptor.h"
+#include "webrtc/modules/remote_bitrate_estimator/include/bwe_defines.h"
 #include "webrtc/modules/rtp_rtcp/include/rtp_rtcp_defines.h"
 
 namespace webrtc {
@@ -97,14 +98,14 @@
     rtclog::DelayBasedBweUpdate::DetectorState detector_state) {
   switch (detector_state) {
     case rtclog::DelayBasedBweUpdate::BWE_NORMAL:
-      return kBwNormal;
+      return BandwidthUsage::kBwNormal;
     case rtclog::DelayBasedBweUpdate::BWE_UNDERUSING:
-      return kBwUnderusing;
+      return BandwidthUsage::kBwUnderusing;
     case rtclog::DelayBasedBweUpdate::BWE_OVERUSING:
-      return kBwOverusing;
+      return BandwidthUsage::kBwOverusing;
   }
   RTC_NOTREACHED();
-  return kBwNormal;
+  return BandwidthUsage::kBwNormal;
 }
 
 std::pair<uint64_t, bool> ParseVarInt(std::istream& stream) {
diff --git a/webrtc/logging/rtc_event_log/rtc_event_log_unittest.cc b/webrtc/logging/rtc_event_log/rtc_event_log_unittest.cc
index d41a883..8be739e 100644
--- a/webrtc/logging/rtc_event_log/rtc_event_log_unittest.cc
+++ b/webrtc/logging/rtc_event_log/rtc_event_log_unittest.cc
@@ -23,6 +23,7 @@
 #include "webrtc/logging/rtc_event_log/rtc_event_log_parser.h"
 #include "webrtc/logging/rtc_event_log/rtc_event_log_unittest_helper.h"
 #include "webrtc/modules/audio_coding/audio_network_adaptor/include/audio_network_adaptor.h"
+#include "webrtc/modules/remote_bitrate_estimator/include/bwe_defines.h"
 #include "webrtc/modules/rtp_rtcp/source/rtcp_packet.h"
 #include "webrtc/modules/rtp_rtcp/source/rtcp_packet/sender_report.h"
 #include "webrtc/modules/rtp_rtcp/source/rtp_header_extension.h"
@@ -560,11 +561,11 @@
   std::unique_ptr<RtcEventLog> log_dumper(RtcEventLog::Create());
   log_dumper->StartLogging(temp_filename, 10000000);
   fake_clock.AdvanceTimeMicros(prng.Rand(1, 1000));
-  log_dumper->LogDelayBasedBweUpdate(bitrate1, kBwNormal);
+  log_dumper->LogDelayBasedBweUpdate(bitrate1, BandwidthUsage::kBwNormal);
   fake_clock.AdvanceTimeMicros(prng.Rand(1, 1000));
-  log_dumper->LogDelayBasedBweUpdate(bitrate2, kBwOverusing);
+  log_dumper->LogDelayBasedBweUpdate(bitrate2, BandwidthUsage::kBwOverusing);
   fake_clock.AdvanceTimeMicros(prng.Rand(1, 1000));
-  log_dumper->LogDelayBasedBweUpdate(bitrate3, kBwUnderusing);
+  log_dumper->LogDelayBasedBweUpdate(bitrate3, BandwidthUsage::kBwUnderusing);
   fake_clock.AdvanceTimeMicros(prng.Rand(1, 1000));
   log_dumper->StopLogging();
 
@@ -577,11 +578,11 @@
   EXPECT_EQ(5u, parsed_log.GetNumberOfEvents());
   RtcEventLogTestHelper::VerifyLogStartEvent(parsed_log, 0);
   RtcEventLogTestHelper::VerifyBweDelayEvent(parsed_log, 1, bitrate1,
-                                             kBwNormal);
+                                             BandwidthUsage::kBwNormal);
   RtcEventLogTestHelper::VerifyBweDelayEvent(parsed_log, 2, bitrate2,
-                                             kBwOverusing);
+                                             BandwidthUsage::kBwOverusing);
   RtcEventLogTestHelper::VerifyBweDelayEvent(parsed_log, 3, bitrate3,
-                                             kBwUnderusing);
+                                             BandwidthUsage::kBwUnderusing);
   RtcEventLogTestHelper::VerifyLogEndEvent(parsed_log, 4);
 
   // Clean up temporary file - can be pretty slow.
diff --git a/webrtc/logging/rtc_event_log/rtc_event_log_unittest_helper.cc b/webrtc/logging/rtc_event_log/rtc_event_log_unittest_helper.cc
index 7519ee5..4c0668c 100644
--- a/webrtc/logging/rtc_event_log/rtc_event_log_unittest_helper.cc
+++ b/webrtc/logging/rtc_event_log/rtc_event_log_unittest_helper.cc
@@ -16,6 +16,7 @@
 
 #include "webrtc/base/checks.h"
 #include "webrtc/modules/audio_coding/audio_network_adaptor/include/audio_network_adaptor.h"
+#include "webrtc/modules/remote_bitrate_estimator/include/bwe_defines.h"
 #include "webrtc/test/gtest.h"
 #include "webrtc/test/testsupport/fileutils.h"
 
@@ -48,14 +49,14 @@
     rtclog::DelayBasedBweUpdate::DetectorState detector_state) {
   switch (detector_state) {
     case rtclog::DelayBasedBweUpdate::BWE_NORMAL:
-      return kBwNormal;
+      return BandwidthUsage::kBwNormal;
     case rtclog::DelayBasedBweUpdate::BWE_UNDERUSING:
-      return kBwUnderusing;
+      return BandwidthUsage::kBwUnderusing;
     case rtclog::DelayBasedBweUpdate::BWE_OVERUSING:
-      return kBwOverusing;
+      return BandwidthUsage::kBwOverusing;
   }
   RTC_NOTREACHED();
-  return kBwNormal;
+  return BandwidthUsage::kBwNormal;
 }
 
 rtclog::BweProbeResult::ResultType GetProbeResultType(
diff --git a/webrtc/modules/congestion_controller/delay_based_bwe.cc b/webrtc/modules/congestion_controller/delay_based_bwe.cc
index 11ea0e9..453b03e 100644
--- a/webrtc/modules/congestion_controller/delay_based_bwe.cc
+++ b/webrtc/modules/congestion_controller/delay_based_bwe.cc
@@ -163,7 +163,7 @@
       probing_interval_estimator_(&rate_control_),
       consecutive_delayed_feedbacks_(0),
       last_logged_bitrate_(0),
-      last_logged_state_(kBwNormal) {
+      last_logged_state_(BandwidthUsage::kBwNormal) {
   LOG(LS_INFO) << "Using Trendline filter for delay change estimation.";
 
   network_thread_.DetachFromThread();
@@ -277,7 +277,7 @@
   rtc::Optional<uint32_t> acked_bitrate_bps =
       receiver_incoming_bitrate_.bitrate_bps();
   // Currently overusing the bandwidth.
-  if (detector_.State() == kBwOverusing) {
+  if (detector_.State() == BandwidthUsage::kBwOverusing) {
     if (acked_bitrate_bps &&
         rate_control_.TimeToReduceFurther(now_ms, *acked_bitrate_bps)) {
       result.updated =
diff --git a/webrtc/modules/remote_bitrate_estimator/aimd_rate_control.cc b/webrtc/modules/remote_bitrate_estimator/aimd_rate_control.cc
index 5b0ba5a..2428ddf 100644
--- a/webrtc/modules/remote_bitrate_estimator/aimd_rate_control.cc
+++ b/webrtc/modules/remote_bitrate_estimator/aimd_rate_control.cc
@@ -147,7 +147,8 @@
   // An over-use should always trigger us to reduce the bitrate, even though
   // we have not yet established our first estimate. By acting on the over-use,
   // we will end up with a valid estimate.
-  if (!bitrate_is_initialized_ && input.bw_state != kBwOverusing)
+  if (!bitrate_is_initialized_ &&
+      input.bw_state != BandwidthUsage::kBwOverusing)
     return current_bitrate_bps_;
 
   ChangeState(input, now_ms);
@@ -279,18 +280,18 @@
 void AimdRateControl::ChangeState(const RateControlInput& input,
                                   int64_t now_ms) {
   switch (input.bw_state) {
-    case kBwNormal:
+    case BandwidthUsage::kBwNormal:
       if (rate_control_state_ == kRcHold) {
         time_last_bitrate_change_ = now_ms;
         rate_control_state_ = kRcIncrease;
       }
       break;
-    case kBwOverusing:
+    case BandwidthUsage::kBwOverusing:
       if (rate_control_state_ != kRcDecrease) {
         rate_control_state_ = kRcDecrease;
       }
       break;
-    case kBwUnderusing:
+    case BandwidthUsage::kBwUnderusing:
       rate_control_state_ = kRcHold;
       break;
     default:
diff --git a/webrtc/modules/remote_bitrate_estimator/aimd_rate_control_unittest.cc b/webrtc/modules/remote_bitrate_estimator/aimd_rate_control_unittest.cc
index 68e6f51..d15418f 100644
--- a/webrtc/modules/remote_bitrate_estimator/aimd_rate_control_unittest.cc
+++ b/webrtc/modules/remote_bitrate_estimator/aimd_rate_control_unittest.cc
@@ -77,7 +77,7 @@
   constexpr int kBitrate = 300000;
   states.aimd_rate_control->SetEstimate(
       kBitrate, states.simulated_clock->TimeInMilliseconds());
-  UpdateRateControl(states, kBwOverusing, kBitrate - 2000,
+  UpdateRateControl(states, BandwidthUsage::kBwOverusing, kBitrate - 2000,
                     states.simulated_clock->TimeInMilliseconds());
   EXPECT_EQ(rtc::Optional<int>(46700),
             states.aimd_rate_control->GetLastBitrateDecreaseBps());
@@ -90,7 +90,7 @@
       kAckedBitrate, states.simulated_clock->TimeInMilliseconds());
   while (states.simulated_clock->TimeInMilliseconds() - kClockInitialTime <
          20000) {
-    UpdateRateControl(states, kBwNormal, kAckedBitrate,
+    UpdateRateControl(states, BandwidthUsage::kBwNormal, kAckedBitrate,
                       states.simulated_clock->TimeInMilliseconds());
     states.simulated_clock->AdvanceTimeMilliseconds(100);
   }
@@ -106,7 +106,7 @@
       kAckedBitrate, states.simulated_clock->TimeInMilliseconds());
   while (states.simulated_clock->TimeInMilliseconds() - kClockInitialTime <
          20000) {
-    UpdateRateControl(states, kBwNormal, kAckedBitrate,
+    UpdateRateControl(states, BandwidthUsage::kBwNormal, kAckedBitrate,
                       states.simulated_clock->TimeInMilliseconds());
     states.simulated_clock->AdvanceTimeMilliseconds(100);
   }
@@ -114,7 +114,7 @@
   // If the acked bitrate decreases the BWE shouldn't be reduced to 1.5x
   // what's being acked, but also shouldn't get to increase more.
   uint32_t prev_estimate = states.aimd_rate_control->LatestEstimate();
-  UpdateRateControl(states, kBwNormal, kAckedBitrate / 2,
+  UpdateRateControl(states, BandwidthUsage::kBwNormal, kAckedBitrate / 2,
                     states.simulated_clock->TimeInMilliseconds());
   uint32_t new_estimate = states.aimd_rate_control->LatestEstimate();
   EXPECT_NEAR(new_estimate, static_cast<uint32_t>(1.5 * kAckedBitrate + 10000),
diff --git a/webrtc/modules/remote_bitrate_estimator/include/bwe_defines.h b/webrtc/modules/remote_bitrate_estimator/include/bwe_defines.h
index 26bfb28..ab05e7f 100644
--- a/webrtc/modules/remote_bitrate_estimator/include/bwe_defines.h
+++ b/webrtc/modules/remote_bitrate_estimator/include/bwe_defines.h
@@ -35,7 +35,7 @@
   kBweNamesMax = 4
 };
 
-enum BandwidthUsage {
+enum class BandwidthUsage {
   kBwNormal = 0,
   kBwUnderusing = 1,
   kBwOverusing = 2,
diff --git a/webrtc/modules/remote_bitrate_estimator/overuse_detector.cc b/webrtc/modules/remote_bitrate_estimator/overuse_detector.cc
index 2e3b4b3..399daf0 100644
--- a/webrtc/modules/remote_bitrate_estimator/overuse_detector.cc
+++ b/webrtc/modules/remote_bitrate_estimator/overuse_detector.cc
@@ -70,7 +70,7 @@
       prev_offset_(0.0),
       time_over_using_(-1),
       overuse_counter_(0),
-      hypothesis_(kBwNormal) {
+      hypothesis_(BandwidthUsage::kBwNormal) {
   if (!AdaptiveThresholdExperimentIsDisabled())
     InitializeExperiment();
 }
@@ -86,7 +86,7 @@
                                        int num_of_deltas,
                                        int64_t now_ms) {
   if (num_of_deltas < 2) {
-    return kBwNormal;
+    return BandwidthUsage::kBwNormal;
   }
   const double T = std::min(num_of_deltas, kMinNumDeltas) * offset;
   BWE_TEST_LOGGING_PLOT(1, "offset_ms#1", now_ms, offset);
@@ -106,17 +106,17 @@
       if (offset >= prev_offset_) {
         time_over_using_ = 0;
         overuse_counter_ = 0;
-        hypothesis_ = kBwOverusing;
+        hypothesis_ = BandwidthUsage::kBwOverusing;
       }
     }
   } else if (T < -threshold_) {
     time_over_using_ = -1;
     overuse_counter_ = 0;
-    hypothesis_ = kBwUnderusing;
+    hypothesis_ = BandwidthUsage::kBwUnderusing;
   } else {
     time_over_using_ = -1;
     overuse_counter_ = 0;
-    hypothesis_ = kBwNormal;
+    hypothesis_ = BandwidthUsage::kBwNormal;
   }
   prev_offset_ = offset;
 
diff --git a/webrtc/modules/remote_bitrate_estimator/overuse_detector_unittest.cc b/webrtc/modules/remote_bitrate_estimator/overuse_detector_unittest.cc
index fb5d4e7..0178f33 100644
--- a/webrtc/modules/remote_bitrate_estimator/overuse_detector_unittest.cc
+++ b/webrtc/modules/remote_bitrate_estimator/overuse_detector_unittest.cc
@@ -59,7 +59,7 @@
           receive_time_ms_,
           now_ms_ + static_cast<int64_t>(
                         random_.Gaussian(0, standard_deviation_ms) + 0.5));
-      if (kBwOverusing == overuse_detector_->State()) {
+      if (BandwidthUsage::kBwOverusing == overuse_detector_->State()) {
         if (last_overuse + 1 != i) {
           unique_overuse++;
         }
@@ -82,7 +82,7 @@
           receive_time_ms_,
           now_ms_ + static_cast<int64_t>(
                         random_.Gaussian(0, standard_deviation_ms) + 0.5));
-      if (kBwOverusing == overuse_detector_->State()) {
+      if (BandwidthUsage::kBwOverusing == overuse_detector_->State()) {
         return i + 1;
       }
     }
@@ -139,7 +139,7 @@
     UpdateDetector(rtp_timestamp, now_ms_, packet_size);
     now_ms_ += frame_duration_ms;
     rtp_timestamp += frame_duration_ms * 90;
-    EXPECT_EQ(kBwNormal, overuse_detector_->State());
+    EXPECT_EQ(BandwidthUsage::kBwNormal, overuse_detector_->State());
   }
 }
 
@@ -157,7 +157,7 @@
     } else {
       now_ms_ += frame_duration_ms + 5;
     }
-    EXPECT_EQ(kBwNormal, overuse_detector_->State());
+    EXPECT_EQ(BandwidthUsage::kBwNormal, overuse_detector_->State());
   }
 }
 
@@ -175,7 +175,7 @@
     } else {
       rtp_timestamp += (frame_duration_ms + 5) * 90;
     }
-    EXPECT_EQ(kBwNormal, overuse_detector_->State());
+    EXPECT_EQ(BandwidthUsage::kBwNormal, overuse_detector_->State());
   }
 }
 
@@ -226,7 +226,7 @@
     } else {
       now_ms_ += frame_duration_ms + offset;
     }
-    EXPECT_EQ(kBwNormal, overuse_detector_->State());
+    EXPECT_EQ(BandwidthUsage::kBwNormal, overuse_detector_->State());
   }
   // Simulate a higher send pace, that is too high.
   // Above noise generate a standard deviation of approximately 28 ms.
@@ -235,10 +235,10 @@
     UpdateDetector(rtp_timestamp, now_ms_, packet_size);
     now_ms_ += frame_duration_ms + drift_per_frame_ms;
     rtp_timestamp += frame_duration_ms * 90;
-    EXPECT_EQ(kBwNormal, overuse_detector_->State());
+    EXPECT_EQ(BandwidthUsage::kBwNormal, overuse_detector_->State());
   }
   UpdateDetector(rtp_timestamp, now_ms_, packet_size);
-  EXPECT_EQ(kBwOverusing, overuse_detector_->State());
+  EXPECT_EQ(BandwidthUsage::kBwOverusing, overuse_detector_->State());
 }
 
 TEST_F(OveruseDetectorTest, DISABLED_OveruseWithLowVariance100Kbit10fps) {
@@ -258,7 +258,7 @@
     } else {
       now_ms_ += frame_duration_ms + offset;
     }
-    EXPECT_EQ(kBwNormal, overuse_detector_->State());
+    EXPECT_EQ(BandwidthUsage::kBwNormal, overuse_detector_->State());
   }
   // Simulate a higher send pace, that is too high.
   // Total build up of 6 ms.
@@ -266,10 +266,10 @@
     UpdateDetector(rtp_timestamp, now_ms_, packet_size);
     now_ms_ += frame_duration_ms + drift_per_frame_ms;
     rtp_timestamp += frame_duration_ms * 90;
-    EXPECT_EQ(kBwNormal, overuse_detector_->State());
+    EXPECT_EQ(BandwidthUsage::kBwNormal, overuse_detector_->State());
   }
   UpdateDetector(rtp_timestamp, now_ms_, packet_size);
-  EXPECT_EQ(kBwOverusing, overuse_detector_->State());
+  EXPECT_EQ(BandwidthUsage::kBwOverusing, overuse_detector_->State());
 }
 
 TEST_F(OveruseDetectorTest, OveruseWithLowVariance2000Kbit30fps) {
@@ -294,7 +294,7 @@
     } else {
       now_ms_ += frame_duration_ms + offset;
     }
-    EXPECT_EQ(kBwNormal, overuse_detector_->State());
+    EXPECT_EQ(BandwidthUsage::kBwNormal, overuse_detector_->State());
   }
   // Simulate a higher send pace, that is too high.
   // Total build up of 30 ms.
@@ -307,10 +307,10 @@
     UpdateDetector(rtp_timestamp, now_ms_, packet_size);
     now_ms_ += frame_duration_ms + drift_per_frame_ms * 6;
     rtp_timestamp += frame_duration_ms * 90;
-    EXPECT_EQ(kBwNormal, overuse_detector_->State());
+    EXPECT_EQ(BandwidthUsage::kBwNormal, overuse_detector_->State());
   }
   UpdateDetector(rtp_timestamp, now_ms_, packet_size);
-  EXPECT_EQ(kBwOverusing, overuse_detector_->State());
+  EXPECT_EQ(BandwidthUsage::kBwOverusing, overuse_detector_->State());
 }
 
 #if defined(WEBRTC_ANDROID)
@@ -667,7 +667,7 @@
   for (int i = 0; i < kBatchLength; ++i) {
     BandwidthUsage overuse_state =
         overuse_detector_->Detect(kOffset, kTsDelta, num_deltas, now_ms);
-    if (overuse_state == kBwOverusing) {
+    if (overuse_state == BandwidthUsage::kBwOverusing) {
       overuse_detected = true;
     }
     ++num_deltas;
@@ -680,7 +680,7 @@
   for (int i = 0; i < kBatchLength; ++i) {
     BandwidthUsage overuse_state =
         overuse_detector_->Detect(1.1 * kOffset, kTsDelta, num_deltas, now_ms);
-    if (overuse_state == kBwOverusing) {
+    if (overuse_state == BandwidthUsage::kBwOverusing) {
       overuse_detected = true;
     }
     ++num_deltas;
@@ -693,7 +693,7 @@
   for (int i = 0; i < kBatchLength; ++i) {
     BandwidthUsage overuse_state =
         overuse_detector_->Detect(kOffset, kTsDelta, num_deltas, now_ms);
-    if (overuse_state == kBwOverusing) {
+    if (overuse_state == BandwidthUsage::kBwOverusing) {
       overuse_detected = true;
     }
     ++num_deltas;
@@ -705,7 +705,7 @@
   for (int i = 0; i < 15 * kBatchLength; ++i) {
     BandwidthUsage overuse_state =
         overuse_detector_->Detect(0.7 * kOffset, kTsDelta, num_deltas, now_ms);
-    if (overuse_state == kBwOverusing) {
+    if (overuse_state == BandwidthUsage::kBwOverusing) {
       overuse_detected = true;
     }
     ++num_deltas;
@@ -717,7 +717,7 @@
   for (int i = 0; i < kBatchLength; ++i) {
     BandwidthUsage overuse_state =
         overuse_detector_->Detect(kOffset, kTsDelta, num_deltas, now_ms);
-    if (overuse_state == kBwOverusing) {
+    if (overuse_state == BandwidthUsage::kBwOverusing) {
       overuse_detected = true;
     }
     ++num_deltas;
@@ -740,7 +740,7 @@
   for (int i = 0; i < kBatchLength; ++i) {
     BandwidthUsage overuse_state =
         overuse_detector_->Detect(kOffset, kTsDelta, num_deltas, now_ms);
-    if (overuse_state == kBwOverusing) {
+    if (overuse_state == BandwidthUsage::kBwOverusing) {
       overuse_detected = true;
     }
     ++num_deltas;
@@ -754,7 +754,7 @@
   for (int i = 0; i < kShortBatchLength; ++i) {
     BandwidthUsage overuse_state =
         overuse_detector_->Detect(kLargeOffset, kTsDelta, num_deltas, now_ms);
-    if (overuse_state == kBwOverusing) {
+    if (overuse_state == BandwidthUsage::kBwOverusing) {
       overuse_detected = true;
     }
     ++num_deltas;
@@ -767,7 +767,7 @@
   for (int i = 0; i < kBatchLength; ++i) {
     BandwidthUsage overuse_state =
         overuse_detector_->Detect(kOffset, kTsDelta, num_deltas, now_ms);
-    if (overuse_state == kBwOverusing) {
+    if (overuse_state == BandwidthUsage::kBwOverusing) {
       overuse_detected = true;
     }
     ++num_deltas;
diff --git a/webrtc/modules/remote_bitrate_estimator/overuse_estimator.cc b/webrtc/modules/remote_bitrate_estimator/overuse_estimator.cc
index 85efecd..0beab30 100644
--- a/webrtc/modules/remote_bitrate_estimator/overuse_estimator.cc
+++ b/webrtc/modules/remote_bitrate_estimator/overuse_estimator.cc
@@ -65,8 +65,10 @@
   E_[0][0] += process_noise_[0];
   E_[1][1] += process_noise_[1];
 
-  if ((current_hypothesis == kBwOverusing && offset_ < prev_offset_) ||
-      (current_hypothesis == kBwUnderusing && offset_ > prev_offset_)) {
+  if ((current_hypothesis == BandwidthUsage::kBwOverusing &&
+       offset_ < prev_offset_) ||
+      (current_hypothesis == BandwidthUsage::kBwUnderusing &&
+       offset_ > prev_offset_)) {
     E_[1][1] += 10 * process_noise_[1];
   }
 
@@ -78,7 +80,8 @@
 
   const double residual = t_ts_delta - slope_*h[0] - offset_;
 
-  const bool in_stable_state = (current_hypothesis == kBwNormal);
+  const bool in_stable_state =
+      (current_hypothesis == BandwidthUsage::kBwNormal);
   const double max_residual = 3.0 * sqrt(var_noise_);
   // We try to filter out very late frames. For instance periodic key
   // frames doesn't fit the Gaussian model well.
diff --git a/webrtc/modules/remote_bitrate_estimator/remote_bitrate_estimator_abs_send_time.cc b/webrtc/modules/remote_bitrate_estimator/remote_bitrate_estimator_abs_send_time.cc
index 5e9ba6f..23fbd2a 100644
--- a/webrtc/modules/remote_bitrate_estimator/remote_bitrate_estimator_abs_send_time.cc
+++ b/webrtc/modules/remote_bitrate_estimator/remote_bitrate_estimator_abs_send_time.cc
@@ -315,7 +315,7 @@
       if (last_update_ms_ == -1 ||
           now_ms - last_update_ms_ > remote_rate_.GetFeedbackInterval()) {
         update_estimate = true;
-      } else if (detector_.State() == kBwOverusing) {
+      } else if (detector_.State() == BandwidthUsage::kBwOverusing) {
         rtc::Optional<uint32_t> incoming_rate =
             incoming_bitrate_.Rate(arrival_time_ms);
         if (incoming_rate &&
diff --git a/webrtc/modules/remote_bitrate_estimator/remote_bitrate_estimator_single_stream.cc b/webrtc/modules/remote_bitrate_estimator/remote_bitrate_estimator_single_stream.cc
index 86ed41f..5ac8746 100644
--- a/webrtc/modules/remote_bitrate_estimator/remote_bitrate_estimator_single_stream.cc
+++ b/webrtc/modules/remote_bitrate_estimator/remote_bitrate_estimator_single_stream.cc
@@ -125,11 +125,11 @@
                                timestamp_delta_ms,
                                estimator->estimator.num_of_deltas(), now_ms);
   }
-  if (estimator->detector.State() == kBwOverusing) {
+  if (estimator->detector.State() == BandwidthUsage::kBwOverusing) {
     rtc::Optional<uint32_t> incoming_bitrate_bps =
         incoming_bitrate_.Rate(now_ms);
     if (incoming_bitrate_bps &&
-        (prior_state != kBwOverusing ||
+        (prior_state != BandwidthUsage::kBwOverusing ||
          GetRemoteRate()->TimeToReduceFurther(now_ms, *incoming_bitrate_bps))) {
       // The first overuse should immediately trigger a new estimate.
       // We also have to update the estimate immediately if we are overusing
@@ -158,7 +158,7 @@
 }
 
 void RemoteBitrateEstimatorSingleStream::UpdateEstimate(int64_t now_ms) {
-  BandwidthUsage bw_state = kBwNormal;
+  BandwidthUsage bw_state = BandwidthUsage::kBwNormal;
   double sum_var_noise = 0.0;
   SsrcOveruseEstimatorMap::iterator it = overuse_detectors_.begin();
   while (it != overuse_detectors_.end()) {