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

Side by Side Diff: webrtc/modules/congestion_controller/delay_based_bwe_unittest_helper.cc

Issue 2931873002: Test and fix for huge bwe drop after alr state. (Closed)
Patch Set: Response to comments. Created 3 years, 6 months 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) 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 #include "webrtc/modules/congestion_controller/delay_based_bwe_unittest_helper.h " 10 #include "webrtc/modules/congestion_controller/delay_based_bwe_unittest_helper.h "
(...skipping 133 matching lines...) Expand 10 before | Expand all | Expand 10 after
144 ++i; 144 ++i;
145 } 145 }
146 it = std::min_element(streams_.begin(), streams_.end(), RtpStream::Compare); 146 it = std::min_element(streams_.begin(), streams_.end(), RtpStream::Compare);
147 return std::max((*it)->next_rtp_time(), time_now_us); 147 return std::max((*it)->next_rtp_time(), time_now_us);
148 } 148 }
149 } // namespace test 149 } // namespace test
150 150
151 DelayBasedBweTest::DelayBasedBweTest() 151 DelayBasedBweTest::DelayBasedBweTest()
152 : clock_(100000000), 152 : clock_(100000000),
153 acknowledged_bitrate_estimator_( 153 acknowledged_bitrate_estimator_(
154 rtc::MakeUnique<AcknowledgedBitrateEstimator>()), 154 rtc::MakeUnique<AcknowledgedBitrateEstimator>(
155 rtc::MakeUnique<BitrateEstimatorCreator>())),
155 bitrate_estimator_(new DelayBasedBwe(nullptr, &clock_)), 156 bitrate_estimator_(new DelayBasedBwe(nullptr, &clock_)),
156 stream_generator_(new test::StreamGenerator(1e6, // Capacity. 157 stream_generator_(new test::StreamGenerator(1e6, // Capacity.
157 clock_.TimeInMicroseconds())), 158 clock_.TimeInMicroseconds())),
158 arrival_time_offset_ms_(0), 159 arrival_time_offset_ms_(0),
159 first_update_(true) {} 160 first_update_(true) {}
160 161
161 DelayBasedBweTest::~DelayBasedBweTest() {} 162 DelayBasedBweTest::~DelayBasedBweTest() {}
162 163
163 void DelayBasedBweTest::AddDefaultStream() { 164 void DelayBasedBweTest::AddDefaultStream() {
164 stream_generator_->AddStream(new test::RtpStream(30, 3e5)); 165 stream_generator_->AddStream(new test::RtpStream(30, 3e5));
(...skipping 12 matching lines...) Expand all
177 void DelayBasedBweTest::IncomingFeedback(int64_t arrival_time_ms, 178 void DelayBasedBweTest::IncomingFeedback(int64_t arrival_time_ms,
178 int64_t send_time_ms, 179 int64_t send_time_ms,
179 uint16_t sequence_number, 180 uint16_t sequence_number,
180 size_t payload_size, 181 size_t payload_size,
181 const PacedPacketInfo& pacing_info) { 182 const PacedPacketInfo& pacing_info) {
182 RTC_CHECK_GE(arrival_time_ms + arrival_time_offset_ms_, 0); 183 RTC_CHECK_GE(arrival_time_ms + arrival_time_offset_ms_, 0);
183 PacketFeedback packet(arrival_time_ms + arrival_time_offset_ms_, send_time_ms, 184 PacketFeedback packet(arrival_time_ms + arrival_time_offset_ms_, send_time_ms,
184 sequence_number, payload_size, pacing_info); 185 sequence_number, payload_size, pacing_info);
185 std::vector<PacketFeedback> packets; 186 std::vector<PacketFeedback> packets;
186 packets.push_back(packet); 187 packets.push_back(packet);
187 acknowledged_bitrate_estimator_->IncomingPacketFeedbackVector(packets); 188 acknowledged_bitrate_estimator_->IncomingPacketFeedbackVector(packets, false);
188 DelayBasedBwe::Result result = 189 DelayBasedBwe::Result result =
189 bitrate_estimator_->IncomingPacketFeedbackVector( 190 bitrate_estimator_->IncomingPacketFeedbackVector(
190 packets, acknowledged_bitrate_estimator_->bitrate_bps()); 191 packets, acknowledged_bitrate_estimator_->bitrate_bps());
191 const uint32_t kDummySsrc = 0; 192 const uint32_t kDummySsrc = 0;
192 if (result.updated) { 193 if (result.updated) {
193 bitrate_observer_.OnReceiveBitrateChanged({kDummySsrc}, 194 bitrate_observer_.OnReceiveBitrateChanged({kDummySsrc},
194 result.target_bitrate_bps); 195 result.target_bitrate_bps);
195 } 196 }
196 } 197 }
197 198
(...skipping 14 matching lines...) Expand all
212 213
213 bool overuse = false; 214 bool overuse = false;
214 bitrate_observer_.Reset(); 215 bitrate_observer_.Reset();
215 clock_.AdvanceTimeMicroseconds(1000 * packets.back().arrival_time_ms - 216 clock_.AdvanceTimeMicroseconds(1000 * packets.back().arrival_time_ms -
216 clock_.TimeInMicroseconds()); 217 clock_.TimeInMicroseconds());
217 for (auto& packet : packets) { 218 for (auto& packet : packets) {
218 RTC_CHECK_GE(packet.arrival_time_ms + arrival_time_offset_ms_, 0); 219 RTC_CHECK_GE(packet.arrival_time_ms + arrival_time_offset_ms_, 0);
219 packet.arrival_time_ms += arrival_time_offset_ms_; 220 packet.arrival_time_ms += arrival_time_offset_ms_;
220 } 221 }
221 222
222 acknowledged_bitrate_estimator_->IncomingPacketFeedbackVector(packets); 223 acknowledged_bitrate_estimator_->IncomingPacketFeedbackVector(packets, false);
223 DelayBasedBwe::Result result = 224 DelayBasedBwe::Result result =
224 bitrate_estimator_->IncomingPacketFeedbackVector( 225 bitrate_estimator_->IncomingPacketFeedbackVector(
225 packets, acknowledged_bitrate_estimator_->bitrate_bps()); 226 packets, acknowledged_bitrate_estimator_->bitrate_bps());
226 const uint32_t kDummySsrc = 0; 227 const uint32_t kDummySsrc = 0;
227 if (result.updated) { 228 if (result.updated) {
228 bitrate_observer_.OnReceiveBitrateChanged({kDummySsrc}, 229 bitrate_observer_.OnReceiveBitrateChanged({kDummySsrc},
229 result.target_bitrate_bps); 230 result.target_bitrate_bps);
230 if (!first_update_ && result.target_bitrate_bps < bitrate_bps) 231 if (!first_update_ && result.target_bitrate_bps < bitrate_bps)
231 overuse = true; 232 overuse = true;
232 first_update_ = false; 233 first_update_ = false;
(...skipping 271 matching lines...) Expand 10 before | Expand all | Expand 10 after
504 IncomingFeedback(clock_.TimeInMilliseconds(), send_time_ms, 505 IncomingFeedback(clock_.TimeInMilliseconds(), send_time_ms,
505 sequence_number++, 1000); 506 sequence_number++, 1000);
506 clock_.AdvanceTimeMilliseconds(2 * kFrameIntervalMs); 507 clock_.AdvanceTimeMilliseconds(2 * kFrameIntervalMs);
507 send_time_ms += kFrameIntervalMs; 508 send_time_ms += kFrameIntervalMs;
508 } 509 }
509 uint32_t bitrate_after = 0; 510 uint32_t bitrate_after = 0;
510 bitrate_estimator_->LatestEstimate(&ssrcs, &bitrate_after); 511 bitrate_estimator_->LatestEstimate(&ssrcs, &bitrate_after);
511 EXPECT_LT(bitrate_after, bitrate_before); 512 EXPECT_LT(bitrate_after, bitrate_before);
512 } 513 }
513 } // namespace webrtc 514 } // namespace webrtc
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698