Adds scalar division to DataRate.

Bug: webrtc:9709
Change-Id: I73eac1d2f27bd0f30a7b1ca075009a6aece08b03
Reviewed-on: https://webrtc-review.googlesource.com/c/110786
Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
Commit-Queue: Sebastian Jansson <srte@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#25680}
diff --git a/api/units/data_rate.h b/api/units/data_rate.h
index 28efcd3..f3b91fa 100644
--- a/api/units/data_rate.h
+++ b/api/units/data_rate.h
@@ -206,6 +206,13 @@
   return rate * scalar;
 }
 
+template <typename T>
+typename std::enable_if<std::is_arithmetic<T>::value, DataRate>::type operator/(
+    const DataRate& rate,
+    const T& scalar) {
+  return DataRate::bps(rate.bps<double>() / scalar);
+}
+
 inline DataRate operator/(const DataSize& size, const TimeDelta& duration) {
   return DataRate::bps(data_rate_impl::Microbits(size) / duration.us());
 }
diff --git a/api/units/data_rate_unittest.cc b/api/units/data_rate_unittest.cc
index 8e5b660..996298c 100644
--- a/api/units/data_rate_unittest.cc
+++ b/api/units/data_rate_unittest.cc
@@ -130,6 +130,9 @@
 
   EXPECT_EQ(rate_a / rate_b, static_cast<double>(kValueA) / kValueB);
 
+  EXPECT_EQ((rate_a / 10).bps(), kValueA / 10);
+  EXPECT_NEAR((rate_a / 0.5).bps(), kValueA * 2, 1);
+
   DataRate mutable_rate = DataRate::bps(kValueA);
   mutable_rate += rate_b;
   EXPECT_EQ(mutable_rate.bps(), kValueA + kValueB);