Adding bps_or method to DataRate class.

Bug: webrtc:8415
Change-Id: I64e46b63d82cb843f0710839c1fc22e2440ae7e1
Reviewed-on: https://webrtc-review.googlesource.com/59222
Commit-Queue: Sebastian Jansson <srte@webrtc.org>
Reviewed-by: Björn Terelius <terelius@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#22285}
diff --git a/modules/congestion_controller/goog_cc/goog_cc_network_control.cc b/modules/congestion_controller/goog_cc/goog_cc_network_control.cc
index a360e9c..d07bc34 100644
--- a/modules/congestion_controller/goog_cc/goog_cc_network_control.cc
+++ b/modules/congestion_controller/goog_cc/goog_cc_network_control.cc
@@ -137,13 +137,8 @@
 
 void GoogCcNetworkController::OnNetworkRouteChange(NetworkRouteChange msg) {
   int64_t min_bitrate_bps = msg.constraints.min_data_rate.bps();
-  int64_t max_bitrate_bps = -1;
-  int64_t start_bitrate_bps = -1;
-
-  if (msg.constraints.max_data_rate.IsFinite())
-    max_bitrate_bps = msg.constraints.max_data_rate.bps();
-  if (msg.constraints.starting_rate.IsFinite())
-    start_bitrate_bps = msg.constraints.starting_rate.bps();
+  int64_t max_bitrate_bps = msg.constraints.max_data_rate.bps_or(-1);
+  int64_t start_bitrate_bps = msg.constraints.starting_rate.bps_or(-1);
 
   ClampBitrates(&start_bitrate_bps, &min_bitrate_bps, &max_bitrate_bps);
 
@@ -216,13 +211,8 @@
 void GoogCcNetworkController::OnTargetRateConstraints(
     TargetRateConstraints constraints) {
   int64_t min_bitrate_bps = constraints.min_data_rate.bps();
-  int64_t max_bitrate_bps = -1;
-  int64_t start_bitrate_bps = -1;
-
-  if (constraints.max_data_rate.IsFinite())
-    max_bitrate_bps = constraints.max_data_rate.bps();
-  if (constraints.starting_rate.IsFinite())
-    start_bitrate_bps = constraints.starting_rate.bps();
+  int64_t max_bitrate_bps = constraints.max_data_rate.bps_or(-1);
+  int64_t start_bitrate_bps = constraints.starting_rate.bps_or(-1);
 
   ClampBitrates(&start_bitrate_bps, &min_bitrate_bps, &max_bitrate_bps);
 
diff --git a/modules/congestion_controller/network_control/include/network_units.h b/modules/congestion_controller/network_control/include/network_units.h
index ab7b4b2..81054f0 100644
--- a/modules/congestion_controller/network_control/include/network_units.h
+++ b/modules/congestion_controller/network_control/include/network_units.h
@@ -285,6 +285,9 @@
   }
   int64_t bytes_per_second() const { return bits_per_second() / 8; }
   int64_t bps() const { return bits_per_second(); }
+  int64_t bps_or(int64_t fallback) const {
+    return IsFinite() ? bits_per_second() : fallback;
+  }
   int64_t kbps() const { return units_internal::DivideAndRound(bps(), 1000); }
   bool IsZero() const { return bits_per_sec_ == 0; }
   bool IsInfinite() const {