| Index: webrtc/modules/bitrate_controller/send_side_bandwidth_estimation.cc
|
| diff --git a/webrtc/modules/bitrate_controller/send_side_bandwidth_estimation.cc b/webrtc/modules/bitrate_controller/send_side_bandwidth_estimation.cc
|
| index ad8a6f9e77140d7a7af703c08df4d746be51c569..0e6cddf8e4711326ca2017b7fea4559b667e2061 100644
|
| --- a/webrtc/modules/bitrate_controller/send_side_bandwidth_estimation.cc
|
| +++ b/webrtc/modules/bitrate_controller/send_side_bandwidth_estimation.cc
|
| @@ -34,23 +34,22 @@ const int64_t kRtcEventLogPeriodMs = 5000;
|
| const int64_t kFeedbackIntervalMs = 1500;
|
| const int64_t kFeedbackTimeoutIntervals = 3;
|
| const int64_t kTimeoutIntervalMs = 1000;
|
| -
|
| -struct UmaRampUpMetric {
|
| - const char* metric_name;
|
| - int bitrate_kbps;
|
| -};
|
| -
|
| -const UmaRampUpMetric kUmaRampupMetrics[] = {
|
| - {"WebRTC.BWE.RampUpTimeTo500kbpsInMs", 500},
|
| - {"WebRTC.BWE.RampUpTimeTo1000kbpsInMs", 1000},
|
| - {"WebRTC.BWE.RampUpTimeTo2000kbpsInMs", 2000}};
|
| -const size_t kNumUmaRampupMetrics =
|
| - sizeof(kUmaRampupMetrics) / sizeof(kUmaRampupMetrics[0]);
|
| -
|
| } // namespace
|
|
|
| SendSideBandwidthEstimation::SendSideBandwidthEstimation(RtcEventLog* event_log)
|
| - : lost_packets_since_last_loss_update_Q8_(0),
|
| + : rampup_histograms_{
|
| + {rtc::Histogram("WebRTC.BWE.RampUpTimeTo500kbpsInMs", 100000), 500},
|
| + {rtc::Histogram("WebRTC.BWE.RampUpTimeTo1000kbpsInMs", 100000), 1000},
|
| + {rtc::Histogram("WebRTC.BWE.RampUpTimeTo2000kbpsInMs", 100000), 2000},
|
| + },
|
| + initially_lost_packets_histogram_(
|
| + rtc::Histogram("WebRTC.BWE.InitiallyLostPackets", 0, 100)),
|
| + initial_rtt_histogram_(rtc::Histogram("WebRTC.BWE.InitialRtt", 0, 2000)),
|
| + initial_bwe_histogram_(
|
| + rtc::Histogram("WebRTC.BWE.InitialBandwidthEstimate", 0, 2000)),
|
| + initial_vs_converged_diff_histogram_(
|
| + rtc::Histogram("WebRTC.BWE.InitialVsConvergedDiff", 0, 2000)),
|
| + lost_packets_since_last_loss_update_Q8_(0),
|
| expected_packets_since_last_loss_update_(0),
|
| bitrate_(0),
|
| min_bitrate_configured_(congestion_controller::GetMinBitrateBps()),
|
| @@ -70,7 +69,9 @@ SendSideBandwidthEstimation::SendSideBandwidthEstimation(RtcEventLog* event_log)
|
| initially_lost_packets_(0),
|
| bitrate_at_2_seconds_kbps_(0),
|
| uma_update_state_(kNoUpdate),
|
| - rampup_uma_stats_updated_(kNumUmaRampupMetrics, false),
|
| + rampup_uma_stats_updated_(
|
| + sizeof(rampup_histograms_) / sizeof(*rampup_histograms_),
|
| + false),
|
| event_log_(event_log),
|
| last_rtc_event_log_ms_(-1),
|
| in_timeout_experiment_(webrtc::field_trial::FindFullName(
|
| @@ -175,11 +176,10 @@ void SendSideBandwidthEstimation::UpdateUmaStats(int64_t now_ms,
|
| int64_t rtt,
|
| int lost_packets) {
|
| int bitrate_kbps = static_cast<int>((bitrate_ + 500) / 1000);
|
| - for (size_t i = 0; i < kNumUmaRampupMetrics; ++i) {
|
| + for (size_t i = 0; i < rampup_uma_stats_updated_.size(); ++i) {
|
| if (!rampup_uma_stats_updated_[i] &&
|
| - bitrate_kbps >= kUmaRampupMetrics[i].bitrate_kbps) {
|
| - RTC_HISTOGRAMS_COUNTS_100000(i, kUmaRampupMetrics[i].metric_name,
|
| - now_ms - first_report_time_ms_);
|
| + bitrate_kbps >= rampup_histograms_[i].bitrate_kbps) {
|
| + rampup_histograms_[i].histogram.AddSample(now_ms - first_report_time_ms_);
|
| rampup_uma_stats_updated_[i] = true;
|
| }
|
| }
|
| @@ -188,19 +188,15 @@ void SendSideBandwidthEstimation::UpdateUmaStats(int64_t now_ms,
|
| } else if (uma_update_state_ == kNoUpdate) {
|
| uma_update_state_ = kFirstDone;
|
| bitrate_at_2_seconds_kbps_ = bitrate_kbps;
|
| - RTC_HISTOGRAM_COUNTS("WebRTC.BWE.InitiallyLostPackets",
|
| - initially_lost_packets_, 0, 100, 50);
|
| - RTC_HISTOGRAM_COUNTS("WebRTC.BWE.InitialRtt", static_cast<int>(rtt), 0,
|
| - 2000, 50);
|
| - RTC_HISTOGRAM_COUNTS("WebRTC.BWE.InitialBandwidthEstimate",
|
| - bitrate_at_2_seconds_kbps_, 0, 2000, 50);
|
| + initially_lost_packets_histogram_.AddSample(initially_lost_packets_);
|
| + initial_rtt_histogram_.AddSample(static_cast<int>(rtt));
|
| + initial_bwe_histogram_.AddSample(bitrate_at_2_seconds_kbps_);
|
| } else if (uma_update_state_ == kFirstDone &&
|
| now_ms - first_report_time_ms_ >= kBweConverganceTimeMs) {
|
| uma_update_state_ = kDone;
|
| int bitrate_diff_kbps =
|
| std::max(bitrate_at_2_seconds_kbps_ - bitrate_kbps, 0);
|
| - RTC_HISTOGRAM_COUNTS("WebRTC.BWE.InitialVsConvergedDiff", bitrate_diff_kbps,
|
| - 0, 2000, 50);
|
| + initial_vs_converged_diff_histogram_.AddSample(bitrate_diff_kbps);
|
| }
|
| }
|
|
|
|
|