Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(89)

Side by Side Diff: webrtc/modules/remote_bitrate_estimator/aimd_rate_control.cc

Issue 1520513003: Fixed lint warnings in webrtc/modules/remote_bitrate_estimator (Closed) Base URL: https://chromium.googlesource.com/external/webrtc.git@master
Patch Set: Include in alphabetic order Created 5 years ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 /* 1 /*
2 * Copyright (c) 2014 The WebRTC project authors. All Rights Reserved. 2 * Copyright (c) 2014 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 70 matching lines...) Expand 10 before | Expand all | Expand 10 after
81 } 81 }
82 return false; 82 return false;
83 } 83 }
84 84
85 uint32_t AimdRateControl::LatestEstimate() const { 85 uint32_t AimdRateControl::LatestEstimate() const {
86 return current_bitrate_bps_; 86 return current_bitrate_bps_;
87 } 87 }
88 88
89 uint32_t AimdRateControl::UpdateBandwidthEstimate(int64_t now_ms) { 89 uint32_t AimdRateControl::UpdateBandwidthEstimate(int64_t now_ms) {
90 current_bitrate_bps_ = ChangeBitrate(current_bitrate_bps_, 90 current_bitrate_bps_ = ChangeBitrate(current_bitrate_bps_,
91 current_input_._incomingBitRate, 91 current_input_.incoming_bitrate, now_ms);
92 now_ms);
93 if (now_ms - time_of_last_log_ > kLogIntervalMs) { 92 if (now_ms - time_of_last_log_ > kLogIntervalMs) {
94 time_of_last_log_ = now_ms; 93 time_of_last_log_ = now_ms;
95 } 94 }
96 return current_bitrate_bps_; 95 return current_bitrate_bps_;
97 } 96 }
98 97
99 void AimdRateControl::SetRtt(int64_t rtt) { 98 void AimdRateControl::SetRtt(int64_t rtt) {
100 rtt_ = rtt; 99 rtt_ = rtt;
101 } 100 }
102 101
103 void AimdRateControl::Update(const RateControlInput* input, int64_t now_ms) { 102 void AimdRateControl::Update(const RateControlInput* input, int64_t now_ms) {
104 assert(input); 103 assert(input);
105 104
106 // Set the initial bit rate value to what we're receiving the first half 105 // Set the initial bit rate value to what we're receiving the first half
107 // second. 106 // second.
108 if (!bitrate_is_initialized_) { 107 if (!bitrate_is_initialized_) {
109 const int64_t kInitializationTimeMs = 5000; 108 const int64_t kInitializationTimeMs = 5000;
110 RTC_DCHECK_LE(kBitrateWindowMs, kInitializationTimeMs); 109 RTC_DCHECK_LE(kBitrateWindowMs, kInitializationTimeMs);
111 if (time_first_incoming_estimate_ < 0) { 110 if (time_first_incoming_estimate_ < 0) {
112 if (input->_incomingBitRate > 0) { 111 if (input->incoming_bitrate > 0) {
113 time_first_incoming_estimate_ = now_ms; 112 time_first_incoming_estimate_ = now_ms;
114 } 113 }
115 } else if (now_ms - time_first_incoming_estimate_ > kInitializationTimeMs && 114 } else if (now_ms - time_first_incoming_estimate_ > kInitializationTimeMs &&
116 input->_incomingBitRate > 0) { 115 input->incoming_bitrate > 0) {
117 current_bitrate_bps_ = input->_incomingBitRate; 116 current_bitrate_bps_ = input->incoming_bitrate;
118 bitrate_is_initialized_ = true; 117 bitrate_is_initialized_ = true;
119 } 118 }
120 } 119 }
121 120
122 if (updated_ && current_input_._bwState == kBwOverusing) { 121 if (updated_ && current_input_.bw_state == kBwOverusing) {
123 // Only update delay factor and incoming bit rate. We always want to react 122 // Only update delay factor and incoming bit rate. We always want to react
124 // on an over-use. 123 // on an over-use.
125 current_input_._noiseVar = input->_noiseVar; 124 current_input_.noise_var = input->noise_var;
126 current_input_._incomingBitRate = input->_incomingBitRate; 125 current_input_.incoming_bitrate = input->incoming_bitrate;
127 } else { 126 } else {
128 updated_ = true; 127 updated_ = true;
129 current_input_ = *input; 128 current_input_ = *input;
130 } 129 }
131 } 130 }
132 131
133 void AimdRateControl::SetEstimate(int bitrate_bps, int64_t now_ms) { 132 void AimdRateControl::SetEstimate(int bitrate_bps, int64_t now_ms) {
134 updated_ = true; 133 updated_ = true;
135 bitrate_is_initialized_ = true; 134 bitrate_is_initialized_ = true;
136 current_bitrate_bps_ = ChangeBitrate(bitrate_bps, bitrate_bps, now_ms); 135 current_bitrate_bps_ = ChangeBitrate(bitrate_bps, bitrate_bps, now_ms);
137 } 136 }
138 137
139 uint32_t AimdRateControl::ChangeBitrate(uint32_t current_bitrate_bps, 138 uint32_t AimdRateControl::ChangeBitrate(uint32_t current_bitrate_bps,
140 uint32_t incoming_bitrate_bps, 139 uint32_t incoming_bitrate_bps,
141 int64_t now_ms) { 140 int64_t now_ms) {
142 if (!updated_) { 141 if (!updated_) {
143 return current_bitrate_bps_; 142 return current_bitrate_bps_;
144 } 143 }
145 // An over-use should always trigger us to reduce the bitrate, even though 144 // An over-use should always trigger us to reduce the bitrate, even though
146 // we have not yet established our first estimate. By acting on the over-use, 145 // we have not yet established our first estimate. By acting on the over-use,
147 // we will end up with a valid estimate. 146 // we will end up with a valid estimate.
148 if (!bitrate_is_initialized_ && current_input_._bwState != kBwOverusing) 147 if (!bitrate_is_initialized_ && current_input_.bw_state != kBwOverusing)
149 return current_bitrate_bps_; 148 return current_bitrate_bps_;
150 updated_ = false; 149 updated_ = false;
151 ChangeState(current_input_, now_ms); 150 ChangeState(current_input_, now_ms);
152 // Calculated here because it's used in multiple places. 151 // Calculated here because it's used in multiple places.
153 const float incoming_bitrate_kbps = incoming_bitrate_bps / 1000.0f; 152 const float incoming_bitrate_kbps = incoming_bitrate_bps / 1000.0f;
154 // Calculate the max bit rate std dev given the normalized 153 // Calculate the max bit rate std dev given the normalized
155 // variance and the current incoming bit rate. 154 // variance and the current incoming bit rate.
156 const float std_max_bit_rate = sqrt(var_max_bitrate_kbps_ * 155 const float std_max_bit_rate = sqrt(var_max_bitrate_kbps_ *
157 avg_max_bitrate_kbps_); 156 avg_max_bitrate_kbps_);
158 switch (rate_control_state_) { 157 switch (rate_control_state_) {
(...skipping 118 matching lines...) Expand 10 before | Expand all | Expand 10 after
277 var_max_bitrate_kbps_ = 0.4f; 276 var_max_bitrate_kbps_ = 0.4f;
278 } 277 }
279 // 2.5f ~= 35 kbit/s at 500 kbit/s 278 // 2.5f ~= 35 kbit/s at 500 kbit/s
280 if (var_max_bitrate_kbps_ > 2.5f) { 279 if (var_max_bitrate_kbps_ > 2.5f) {
281 var_max_bitrate_kbps_ = 2.5f; 280 var_max_bitrate_kbps_ = 2.5f;
282 } 281 }
283 } 282 }
284 283
285 void AimdRateControl::ChangeState(const RateControlInput& input, 284 void AimdRateControl::ChangeState(const RateControlInput& input,
286 int64_t now_ms) { 285 int64_t now_ms) {
287 switch (current_input_._bwState) { 286 switch (current_input_.bw_state) {
288 case kBwNormal: 287 case kBwNormal:
289 if (rate_control_state_ == kRcHold) { 288 if (rate_control_state_ == kRcHold) {
290 time_last_bitrate_change_ = now_ms; 289 time_last_bitrate_change_ = now_ms;
291 ChangeState(kRcIncrease); 290 ChangeState(kRcIncrease);
292 } 291 }
293 break; 292 break;
294 case kBwOverusing: 293 case kBwOverusing:
295 if (rate_control_state_ != kRcDecrease) { 294 if (rate_control_state_ != kRcDecrease) {
296 ChangeState(kRcDecrease); 295 ChangeState(kRcDecrease);
297 } 296 }
298 break; 297 break;
299 case kBwUnderusing: 298 case kBwUnderusing:
300 ChangeState(kRcHold); 299 ChangeState(kRcHold);
301 break; 300 break;
302 default: 301 default:
303 assert(false); 302 assert(false);
304 } 303 }
305 } 304 }
306 305
307 void AimdRateControl::ChangeRegion(RateControlRegion region) { 306 void AimdRateControl::ChangeRegion(RateControlRegion region) {
308 rate_control_region_ = region; 307 rate_control_region_ = region;
309 } 308 }
310 309
311 void AimdRateControl::ChangeState(RateControlState new_state) { 310 void AimdRateControl::ChangeState(RateControlState new_state) {
312 rate_control_state_ = new_state; 311 rate_control_state_ = new_state;
313 } 312 }
314 } // namespace webrtc 313 } // namespace webrtc
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698