OLD | NEW |
1 /* | 1 /* |
2 * Copyright (c) 2016 The WebRTC project authors. All Rights Reserved. | 2 * Copyright (c) 2016 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 56 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
67 uma_recorded_(false), | 67 uma_recorded_(false), |
68 probe_bitrate_estimator_(event_log), | 68 probe_bitrate_estimator_(event_log), |
69 trendline_window_size_(kDefaultTrendlineWindowSize), | 69 trendline_window_size_(kDefaultTrendlineWindowSize), |
70 trendline_smoothing_coeff_(kDefaultTrendlineSmoothingCoeff), | 70 trendline_smoothing_coeff_(kDefaultTrendlineSmoothingCoeff), |
71 trendline_threshold_gain_(kDefaultTrendlineThresholdGain), | 71 trendline_threshold_gain_(kDefaultTrendlineThresholdGain), |
72 consecutive_delayed_feedbacks_(0), | 72 consecutive_delayed_feedbacks_(0), |
73 last_logged_bitrate_(0), | 73 last_logged_bitrate_(0), |
74 last_logged_state_(BandwidthUsage::kBwNormal), | 74 last_logged_state_(BandwidthUsage::kBwNormal), |
75 in_sparse_update_experiment_(BweSparseUpdateExperimentIsEnabled()) { | 75 in_sparse_update_experiment_(BweSparseUpdateExperimentIsEnabled()) { |
76 LOG(LS_INFO) << "Using Trendline filter for delay change estimation."; | 76 LOG(LS_INFO) << "Using Trendline filter for delay change estimation."; |
77 network_thread_.DetachFromThread(); | |
78 } | 77 } |
79 | 78 |
80 DelayBasedBwe::~DelayBasedBwe() {} | 79 DelayBasedBwe::~DelayBasedBwe() {} |
81 | 80 |
82 DelayBasedBwe::Result DelayBasedBwe::IncomingPacketFeedbackVector( | 81 DelayBasedBwe::Result DelayBasedBwe::IncomingPacketFeedbackVector( |
83 const std::vector<PacketFeedback>& packet_feedback_vector, | 82 const std::vector<PacketFeedback>& packet_feedback_vector, |
84 rtc::Optional<uint32_t> acked_bitrate_bps) { | 83 rtc::Optional<uint32_t> acked_bitrate_bps) { |
85 RTC_DCHECK(std::is_sorted(packet_feedback_vector.begin(), | 84 RTC_DCHECK(std::is_sorted(packet_feedback_vector.begin(), |
86 packet_feedback_vector.end(), | 85 packet_feedback_vector.end(), |
87 PacketFeedbackComparator())); | 86 PacketFeedbackComparator())); |
88 RTC_DCHECK(network_thread_.CalledOnValidThread()); | 87 RTC_DCHECK_RUNS_SERIALIZED(&race_checker_); |
89 | 88 |
90 // TOOD(holmer): An empty feedback vector here likely means that | 89 // TOOD(holmer): An empty feedback vector here likely means that |
91 // all acks were too late and that the send time history had | 90 // all acks were too late and that the send time history had |
92 // timed out. We should reduce the rate when this occurs. | 91 // timed out. We should reduce the rate when this occurs. |
93 if (packet_feedback_vector.empty()) { | 92 if (packet_feedback_vector.empty()) { |
94 LOG(LS_WARNING) << "Very late feedback received."; | 93 LOG(LS_WARNING) << "Very late feedback received."; |
95 return DelayBasedBwe::Result(); | 94 return DelayBasedBwe::Result(); |
96 } | 95 } |
97 | 96 |
98 if (!uma_recorded_) { | 97 if (!uma_recorded_) { |
(...skipping 167 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
266 void DelayBasedBwe::SetMinBitrate(int min_bitrate_bps) { | 265 void DelayBasedBwe::SetMinBitrate(int min_bitrate_bps) { |
267 // Called from both the configuration thread and the network thread. Shouldn't | 266 // Called from both the configuration thread and the network thread. Shouldn't |
268 // be called from the network thread in the future. | 267 // be called from the network thread in the future. |
269 rate_control_.SetMinBitrate(min_bitrate_bps); | 268 rate_control_.SetMinBitrate(min_bitrate_bps); |
270 } | 269 } |
271 | 270 |
272 int64_t DelayBasedBwe::GetExpectedBwePeriodMs() const { | 271 int64_t DelayBasedBwe::GetExpectedBwePeriodMs() const { |
273 return rate_control_.GetExpectedBandwidthPeriodMs(); | 272 return rate_control_.GetExpectedBandwidthPeriodMs(); |
274 } | 273 } |
275 } // namespace webrtc | 274 } // namespace webrtc |
OLD | NEW |