diff --git a/modules/congestion_controller/delay_based_bwe.cc b/modules/congestion_controller/delay_based_bwe.cc index a49d4682f2..d269be1cae 100644 --- a/modules/congestion_controller/delay_based_bwe.cc +++ b/modules/congestion_controller/delay_based_bwe.cc @@ -83,8 +83,8 @@ DelayBasedBwe::DelayBasedBwe(RtcEventLog* event_log, const Clock* clock) trendline_smoothing_coeff_(kDefaultTrendlineSmoothingCoeff), trendline_threshold_gain_(kDefaultTrendlineThresholdGain), consecutive_delayed_feedbacks_(0), - last_logged_bitrate_(0), - last_logged_state_(BandwidthUsage::kBwNormal), + prev_bitrate_(0), + prev_state_(BandwidthUsage::kBwNormal), in_sparse_update_experiment_(BweSparseUpdateExperimentIsEnabled()) { LOG(LS_INFO) << "Using Trendline filter for delay change estimation."; } @@ -249,16 +249,18 @@ DelayBasedBwe::Result DelayBasedBwe::MaybeUpdateEstimate( result.recovered_from_overuse = recovered_from_overuse; } } - if (result.updated) { - BWE_TEST_LOGGING_PLOT(1, "target_bitrate_bps", now_ms, - result.target_bitrate_bps); - if (event_log_ && (result.target_bitrate_bps != last_logged_bitrate_ || - detector_.State() != last_logged_state_)) { - event_log_->LogDelayBasedBweUpdate(result.target_bitrate_bps, - detector_.State()); - last_logged_bitrate_ = result.target_bitrate_bps; - last_logged_state_ = detector_.State(); - } + if ((result.updated && prev_bitrate_ != result.target_bitrate_bps) || + detector_.State() != prev_state_) { + uint32_t bitrate_bps = + result.updated ? result.target_bitrate_bps : prev_bitrate_; + + BWE_TEST_LOGGING_PLOT(1, "target_bitrate_bps", now_ms, bitrate_bps); + + if (event_log_) + event_log_->LogDelayBasedBweUpdate(bitrate_bps, detector_.State()); + + prev_bitrate_ = bitrate_bps; + prev_state_ = detector_.State(); } return result; } diff --git a/modules/congestion_controller/delay_based_bwe.h b/modules/congestion_controller/delay_based_bwe.h index c0820e1142..3766cd119f 100644 --- a/modules/congestion_controller/delay_based_bwe.h +++ b/modules/congestion_controller/delay_based_bwe.h @@ -85,8 +85,8 @@ class DelayBasedBwe { double trendline_smoothing_coeff_; double trendline_threshold_gain_; int consecutive_delayed_feedbacks_; - uint32_t last_logged_bitrate_; - BandwidthUsage last_logged_state_; + uint32_t prev_bitrate_; + BandwidthUsage prev_state_; bool in_sparse_update_experiment_; RTC_DISALLOW_IMPLICIT_CONSTRUCTORS(DelayBasedBwe);