OLD | NEW |
1 /* | 1 /* |
2 * Copyright (c) 2012 The WebRTC project authors. All Rights Reserved. | 2 * Copyright (c) 2012 The WebRTC project authors. All Rights Reserved. |
3 * | 3 * |
4 * Use of this source code is governed by a BSD-style license | 4 * Use of this source code is governed by a BSD-style license |
5 * that can be found in the LICENSE file in the root of the source | 5 * that can be found in the LICENSE file in the root of the source |
6 * tree. An additional intellectual property rights grant can be found | 6 * tree. An additional intellectual property rights grant can be found |
7 * in the file PATENTS. All contributing project authors may | 7 * in the file PATENTS. All contributing project authors may |
8 * be found in the AUTHORS file in the root of the source tree. | 8 * be found in the AUTHORS file in the root of the source tree. |
9 */ | 9 */ |
10 | 10 |
(...skipping 57 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
68 time_last_decrease_ms_(0), | 68 time_last_decrease_ms_(0), |
69 first_report_time_ms_(-1), | 69 first_report_time_ms_(-1), |
70 initially_lost_packets_(0), | 70 initially_lost_packets_(0), |
71 bitrate_at_2_seconds_kbps_(0), | 71 bitrate_at_2_seconds_kbps_(0), |
72 uma_update_state_(kNoUpdate), | 72 uma_update_state_(kNoUpdate), |
73 rampup_uma_stats_updated_(kNumUmaRampupMetrics, false), | 73 rampup_uma_stats_updated_(kNumUmaRampupMetrics, false), |
74 event_log_(event_log), | 74 event_log_(event_log), |
75 last_rtc_event_log_ms_(-1), | 75 last_rtc_event_log_ms_(-1), |
76 in_timeout_experiment_(webrtc::field_trial::FindFullName( | 76 in_timeout_experiment_(webrtc::field_trial::FindFullName( |
77 "WebRTC-SendSideBwe") == "Enabled") { | 77 "WebRTC-SendSideBwe") == "Enabled") { |
78 RTC_DCHECK(event_log); | |
79 } | 78 } |
80 | 79 |
81 SendSideBandwidthEstimation::~SendSideBandwidthEstimation() {} | 80 SendSideBandwidthEstimation::~SendSideBandwidthEstimation() {} |
82 | 81 |
83 void SendSideBandwidthEstimation::SetBitrates(int send_bitrate, | 82 void SendSideBandwidthEstimation::SetBitrates(int send_bitrate, |
84 int min_bitrate, | 83 int min_bitrate, |
85 int max_bitrate) { | 84 int max_bitrate) { |
86 if (send_bitrate > 0) | 85 if (send_bitrate > 0) |
87 SetSendBitrate(send_bitrate); | 86 SetSendBitrate(send_bitrate); |
88 SetMinMaxBitrate(min_bitrate, max_bitrate); | 87 SetMinMaxBitrate(min_bitrate, max_bitrate); |
(...skipping 185 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
274 << " ms), reducing bitrate."; | 273 << " ms), reducing bitrate."; |
275 bitrate_ *= 0.8; | 274 bitrate_ *= 0.8; |
276 // Reset accumulators since we've already acted on missing feedback and | 275 // Reset accumulators since we've already acted on missing feedback and |
277 // shouldn't to act again on these old lost packets. | 276 // shouldn't to act again on these old lost packets. |
278 lost_packets_since_last_loss_update_Q8_ = 0; | 277 lost_packets_since_last_loss_update_Q8_ = 0; |
279 expected_packets_since_last_loss_update_ = 0; | 278 expected_packets_since_last_loss_update_ = 0; |
280 last_timeout_ms_ = now_ms; | 279 last_timeout_ms_ = now_ms; |
281 } | 280 } |
282 } | 281 } |
283 uint32_t capped_bitrate = CapBitrateToThresholds(now_ms, bitrate_); | 282 uint32_t capped_bitrate = CapBitrateToThresholds(now_ms, bitrate_); |
284 if (capped_bitrate != bitrate_ || | 283 if (event_log_ && (capped_bitrate != bitrate_ || |
285 last_fraction_loss_ != last_logged_fraction_loss_ || | 284 last_fraction_loss_ != last_logged_fraction_loss_ || |
286 last_rtc_event_log_ms_ == -1 || | 285 last_rtc_event_log_ms_ == -1 || |
287 now_ms - last_rtc_event_log_ms_ > kRtcEventLogPeriodMs) { | 286 now_ms - last_rtc_event_log_ms_ > kRtcEventLogPeriodMs)) { |
288 event_log_->LogBwePacketLossEvent(capped_bitrate, last_fraction_loss_, | 287 event_log_->LogBwePacketLossEvent(capped_bitrate, last_fraction_loss_, |
289 expected_packets_since_last_loss_update_); | 288 expected_packets_since_last_loss_update_); |
290 last_logged_fraction_loss_ = last_fraction_loss_; | 289 last_logged_fraction_loss_ = last_fraction_loss_; |
291 last_rtc_event_log_ms_ = now_ms; | 290 last_rtc_event_log_ms_ = now_ms; |
292 } | 291 } |
293 bitrate_ = capped_bitrate; | 292 bitrate_ = capped_bitrate; |
294 } | 293 } |
295 | 294 |
296 bool SendSideBandwidthEstimation::IsInStartPhase(int64_t now_ms) const { | 295 bool SendSideBandwidthEstimation::IsInStartPhase(int64_t now_ms) const { |
297 return first_report_time_ms_ == -1 || | 296 return first_report_time_ms_ == -1 || |
(...skipping 37 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
335 LOG(LS_WARNING) << "Estimated available bandwidth " << bitrate / 1000 | 334 LOG(LS_WARNING) << "Estimated available bandwidth " << bitrate / 1000 |
336 << " kbps is below configured min bitrate " | 335 << " kbps is below configured min bitrate " |
337 << min_bitrate_configured_ / 1000 << " kbps."; | 336 << min_bitrate_configured_ / 1000 << " kbps."; |
338 last_low_bitrate_log_ms_ = now_ms; | 337 last_low_bitrate_log_ms_ = now_ms; |
339 } | 338 } |
340 bitrate = min_bitrate_configured_; | 339 bitrate = min_bitrate_configured_; |
341 } | 340 } |
342 return bitrate; | 341 return bitrate; |
343 } | 342 } |
344 } // namespace webrtc | 343 } // namespace webrtc |
OLD | NEW |