diff --git a/api/units/data_rate.h b/api/units/data_rate.h index 5c8a61fd9c..f83b9a1da4 100644 --- a/api/units/data_rate.h +++ b/api/units/data_rate.h @@ -49,7 +49,31 @@ class DataRate final : public rtc_units_impl::RelativeUnit { static constexpr DataRate Infinity() { return PlusInfinity(); } DataRate() = delete; - + // TODO(danilchap): Migrate all code to the 3 factories above and delete the + // 5 factories below. + template + static constexpr DataRate BitsPerSec() { + return FromValue(bps); + } + template + static constexpr DataRate KilobitsPerSec() { + return FromFraction(1000, kbps); + } + template + static constexpr DataRate bps(T bits_per_second) { + static_assert(std::is_arithmetic::value, ""); + return FromValue(bits_per_second); + } + template + static constexpr DataRate bytes_per_sec(T bytes_per_second) { + static_assert(std::is_arithmetic::value, ""); + return FromFraction(8, bytes_per_second); + } + template + static constexpr DataRate kbps(T kilobits_per_sec) { + static_assert(std::is_arithmetic::value, ""); + return FromFraction(1000, kilobits_per_sec); + } template constexpr T bps() const { return ToValue(); diff --git a/api/units/data_size.h b/api/units/data_size.h index 27a2a4e4dc..82c4423529 100644 --- a/api/units/data_size.h +++ b/api/units/data_size.h @@ -32,7 +32,18 @@ class DataSize final : public rtc_units_impl::RelativeUnit { static constexpr DataSize Infinity() { return PlusInfinity(); } DataSize() = delete; + // TODO(danilchap): Migrate all code to the factory above and delete the + // 2 factories below. + template + static constexpr DataSize Bytes() { + return FromValue(bytes); + } + template + static constexpr DataSize bytes(T bytes) { + static_assert(std::is_arithmetic::value, ""); + return FromValue(bytes); + } template constexpr T bytes() const { return ToValue(); diff --git a/modules/congestion_controller/pcc/pcc_network_controller.cc b/modules/congestion_controller/pcc/pcc_network_controller.cc index 8653470955..9801b098b9 100644 --- a/modules/congestion_controller/pcc/pcc_network_controller.cc +++ b/modules/congestion_controller/pcc/pcc_network_controller.cc @@ -32,8 +32,9 @@ constexpr int64_t kMinPacketsNumberPerInterval = 20; const TimeDelta kMinDurationOfMonitorInterval = TimeDelta::Millis(50); const TimeDelta kStartupDuration = TimeDelta::Millis(500); constexpr double kMinRateChangeBps = 4000; -constexpr DataRate kMinRateHaveMultiplicativeRateChange = DataRate::BitsPerSec( - static_cast(kMinRateChangeBps / kDefaultSamplingStep)); +constexpr DataRate kMinRateHaveMultiplicativeRateChange = + DataRate::BitsPerSec(kMinRateChangeBps / + kDefaultSamplingStep)>(); // Bitrate controller constants. constexpr double kInitialConversionFactor = 5;