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

Side by Side Diff: webrtc/call/rampup_tests.cc

Issue 2705603002: Fixes a bug where a video stream can get stuck in the suspended state. (Closed)
Patch Set: all tests passing. Created 3 years, 10 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
« no previous file with comments | « webrtc/call/rampup_tests.h ('k') | webrtc/test/call_test.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 /* 1 /*
2 * Copyright (c) 2013 The WebRTC project authors. All Rights Reserved. 2 * Copyright (c) 2013 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
11 #include "webrtc/call/rampup_tests.h" 11 #include "webrtc/call/rampup_tests.h"
12 12
13 #include "webrtc/base/checks.h" 13 #include "webrtc/base/checks.h"
14 #include "webrtc/base/logging.h"
14 #include "webrtc/base/platform_thread.h" 15 #include "webrtc/base/platform_thread.h"
15 #include "webrtc/test/encoder_settings.h" 16 #include "webrtc/test/encoder_settings.h"
16 #include "webrtc/test/gtest.h" 17 #include "webrtc/test/gtest.h"
17 #include "webrtc/test/testsupport/perf_test.h" 18 #include "webrtc/test/testsupport/perf_test.h"
18 19
19 namespace webrtc { 20 namespace webrtc {
20 namespace { 21 namespace {
21 22
22 static const int64_t kPollIntervalMs = 20; 23 static const int64_t kPollIntervalMs = 20;
23 static const int kExpectedHighVideoBitrateBps = 60000; 24 static const int kExpectedHighVideoBitrateBps = 80000;
24 static const int kExpectedHighAudioBitrateBps = 30000; 25 static const int kExpectedHighAudioBitrateBps = 30000;
25 static const int kLowBandwidthLimitBps = 20000; 26 static const int kLowBandwidthLimitBps = 20000;
26 static const int kExpectedLowBitrateBps = 20000; 27 static const int kExpectedLowBitrateBps = 20000;
27 28
28 std::vector<uint32_t> GenerateSsrcs(size_t num_streams, uint32_t ssrc_offset) { 29 std::vector<uint32_t> GenerateSsrcs(size_t num_streams, uint32_t ssrc_offset) {
29 std::vector<uint32_t> ssrcs; 30 std::vector<uint32_t> ssrcs;
30 for (size_t i = 0; i != num_streams; ++i) 31 for (size_t i = 0; i != num_streams; ++i)
31 ssrcs.push_back(static_cast<uint32_t>(ssrc_offset + i)); 32 ssrcs.push_back(static_cast<uint32_t>(ssrc_offset + i));
32 return ssrcs; 33 return ssrcs;
33 } 34 }
34 } // namespace 35 } // namespace
35 36
36 RampUpTester::RampUpTester(size_t num_video_streams, 37 RampUpTester::RampUpTester(size_t num_video_streams,
37 size_t num_audio_streams, 38 size_t num_audio_streams,
39 size_t num_flexfec_streams,
38 unsigned int start_bitrate_bps, 40 unsigned int start_bitrate_bps,
39 int64_t min_run_time_ms, 41 int64_t min_run_time_ms,
40 const std::string& extension_type, 42 const std::string& extension_type,
41 bool rtx, 43 bool rtx,
42 bool red, 44 bool red,
43 bool report_perf_stats) 45 bool report_perf_stats)
44 : EndToEndTest(test::CallTest::kLongTimeoutMs), 46 : EndToEndTest(test::CallTest::kLongTimeoutMs),
45 event_(false, false), 47 event_(false, false),
46 clock_(Clock::GetRealTimeClock()), 48 clock_(Clock::GetRealTimeClock()),
47 num_video_streams_(num_video_streams), 49 num_video_streams_(num_video_streams),
48 num_audio_streams_(num_audio_streams), 50 num_audio_streams_(num_audio_streams),
51 num_flexfec_streams_(num_flexfec_streams),
49 rtx_(rtx), 52 rtx_(rtx),
50 red_(red), 53 red_(red),
51 sender_call_(nullptr), 54 sender_call_(nullptr),
52 send_stream_(nullptr), 55 send_stream_(nullptr),
53 start_bitrate_bps_(start_bitrate_bps), 56 start_bitrate_bps_(start_bitrate_bps),
54 min_run_time_ms_(min_run_time_ms), 57 min_run_time_ms_(min_run_time_ms),
55 report_perf_stats_(report_perf_stats), 58 report_perf_stats_(report_perf_stats),
56 expected_bitrate_bps_(0), 59 expected_bitrate_bps_(0),
57 test_start_ms_(-1), 60 test_start_ms_(-1),
58 ramp_up_finished_ms_(-1), 61 ramp_up_finished_ms_(-1),
59 extension_type_(extension_type), 62 extension_type_(extension_type),
60 video_ssrcs_(GenerateSsrcs(num_video_streams_, 100)), 63 video_ssrcs_(GenerateSsrcs(num_video_streams_, 100)),
61 video_rtx_ssrcs_(GenerateSsrcs(num_video_streams_, 200)), 64 video_rtx_ssrcs_(GenerateSsrcs(num_video_streams_, 200)),
62 audio_ssrcs_(GenerateSsrcs(num_audio_streams_, 300)), 65 audio_ssrcs_(GenerateSsrcs(num_audio_streams_, 300)),
63 poller_thread_(&BitrateStatsPollingThread, 66 poller_thread_(&BitrateStatsPollingThread,
64 this, 67 this,
65 "BitrateStatsPollingThread") { 68 "BitrateStatsPollingThread") {
69 if (red_)
70 EXPECT_EQ(0u, num_flexfec_streams_);
66 EXPECT_LE(num_audio_streams_, 1u); 71 EXPECT_LE(num_audio_streams_, 1u);
67 } 72 }
68 73
69 RampUpTester::~RampUpTester() { 74 RampUpTester::~RampUpTester() {
70 event_.Set(); 75 event_.Set();
71 } 76 }
72 77
73 Call::Config RampUpTester::GetSenderCallConfig() { 78 Call::Config RampUpTester::GetSenderCallConfig() {
74 Call::Config call_config(&event_log_); 79 Call::Config call_config(&event_log_);
75 if (start_bitrate_bps_ != 0) { 80 if (start_bitrate_bps_ != 0) {
(...skipping 17 matching lines...) Expand all
93 } 98 }
94 99
95 size_t RampUpTester::GetNumVideoStreams() const { 100 size_t RampUpTester::GetNumVideoStreams() const {
96 return num_video_streams_; 101 return num_video_streams_;
97 } 102 }
98 103
99 size_t RampUpTester::GetNumAudioStreams() const { 104 size_t RampUpTester::GetNumAudioStreams() const {
100 return num_audio_streams_; 105 return num_audio_streams_;
101 } 106 }
102 107
108 size_t RampUpTester::GetNumFlexfecStreams() const {
109 return num_flexfec_streams_;
110 }
111
103 class RampUpTester::VideoStreamFactory 112 class RampUpTester::VideoStreamFactory
104 : public VideoEncoderConfig::VideoStreamFactoryInterface { 113 : public VideoEncoderConfig::VideoStreamFactoryInterface {
105 public: 114 public:
106 VideoStreamFactory() {} 115 VideoStreamFactory() {}
107 116
108 private: 117 private:
109 std::vector<VideoStream> CreateEncoderStreams( 118 std::vector<VideoStream> CreateEncoderStreams(
110 int width, 119 int width,
111 int height, 120 int height,
112 const VideoEncoderConfig& encoder_config) override { 121 const VideoEncoderConfig& encoder_config) override {
(...skipping 89 matching lines...) Expand 10 before | Expand all | Expand 10 after
202 } 211 }
203 212
204 if (rtx_) { 213 if (rtx_) {
205 recv_config.rtp.rtx_ssrc = video_rtx_ssrcs_[i]; 214 recv_config.rtp.rtx_ssrc = video_rtx_ssrcs_[i];
206 recv_config.rtp 215 recv_config.rtp
207 .rtx_payload_types[send_config->encoder_settings.payload_type] = 216 .rtx_payload_types[send_config->encoder_settings.payload_type] =
208 send_config->rtp.rtx.payload_type; 217 send_config->rtp.rtx.payload_type;
209 } 218 }
210 ++i; 219 ++i;
211 } 220 }
221
222 RTC_DCHECK_LE(num_flexfec_streams_, 1);
223 if (num_flexfec_streams_ == 1) {
224 send_config->rtp.flexfec.payload_type = test::CallTest::kFlexfecPayloadType;
225 send_config->rtp.flexfec.ssrc = test::CallTest::kFlexfecSendSsrc;
226 send_config->rtp.flexfec.protected_media_ssrcs = {video_ssrcs_[0]};
227 }
212 } 228 }
213 229
214 void RampUpTester::ModifyAudioConfigs( 230 void RampUpTester::ModifyAudioConfigs(
215 AudioSendStream::Config* send_config, 231 AudioSendStream::Config* send_config,
216 std::vector<AudioReceiveStream::Config>* receive_configs) { 232 std::vector<AudioReceiveStream::Config>* receive_configs) {
217 if (num_audio_streams_ == 0) 233 if (num_audio_streams_ == 0)
218 return; 234 return;
219 235
220 EXPECT_NE(RtpExtension::kTimestampOffsetUri, extension_type_) 236 EXPECT_NE(RtpExtension::kTimestampOffsetUri, extension_type_)
221 << "Audio BWE not supported with toffset."; 237 << "Audio BWE not supported with toffset.";
238 EXPECT_NE(RtpExtension::kAbsSendTimeUri, extension_type_)
239 << "Audio BWE not supported with abs-send-time.";
222 240
223 send_config->rtp.ssrc = audio_ssrcs_[0]; 241 send_config->rtp.ssrc = audio_ssrcs_[0];
224 send_config->rtp.extensions.clear(); 242 send_config->rtp.extensions.clear();
225 243
226 send_config->min_bitrate_bps = 6000; 244 send_config->min_bitrate_bps = 6000;
227 send_config->max_bitrate_bps = 60000; 245 send_config->max_bitrate_bps = 60000;
228 246
229 bool transport_cc = false; 247 bool transport_cc = false;
230 if (extension_type_ == RtpExtension::kAbsSendTimeUri) { 248 if (extension_type_ == RtpExtension::kTransportSequenceNumberUri) {
231 transport_cc = false;
232 send_config->rtp.extensions.push_back(
233 RtpExtension(extension_type_.c_str(), kAbsSendTimeExtensionId));
234 } else if (extension_type_ == RtpExtension::kTransportSequenceNumberUri) {
235 transport_cc = true; 249 transport_cc = true;
236 send_config->rtp.extensions.push_back(RtpExtension( 250 send_config->rtp.extensions.push_back(RtpExtension(
237 extension_type_.c_str(), kTransportSequenceNumberExtensionId)); 251 extension_type_.c_str(), kTransportSequenceNumberExtensionId));
238 } 252 }
239 253
240 for (AudioReceiveStream::Config& recv_config : *receive_configs) { 254 for (AudioReceiveStream::Config& recv_config : *receive_configs) {
241 recv_config.rtp.transport_cc = transport_cc; 255 recv_config.rtp.transport_cc = transport_cc;
242 recv_config.rtp.extensions = send_config->rtp.extensions; 256 recv_config.rtp.extensions = send_config->rtp.extensions;
243 recv_config.rtp.remote_ssrc = send_config->rtp.ssrc; 257 recv_config.rtp.remote_ssrc = send_config->rtp.ssrc;
244 } 258 }
245 } 259 }
246 260
261 void RampUpTester::ModifyFlexfecConfigs(
262 std::vector<FlexfecReceiveStream::Config>* receive_configs) {
263 if (num_flexfec_streams_ == 0)
264 return;
265 RTC_DCHECK_EQ(1, num_flexfec_streams_);
266 (*receive_configs)[0].payload_type = test::CallTest::kFlexfecPayloadType;
267 (*receive_configs)[0].remote_ssrc = test::CallTest::kFlexfecSendSsrc;
268 (*receive_configs)[0].protected_media_ssrcs = {video_ssrcs_[0]};
269 (*receive_configs)[0].local_ssrc = video_ssrcs_[0];
270 if (extension_type_ == RtpExtension::kAbsSendTimeUri) {
271 (*receive_configs)[0].transport_cc = false;
272 (*receive_configs)[0].rtp_header_extensions.push_back(
273 RtpExtension(extension_type_.c_str(), kAbsSendTimeExtensionId));
274 } else if (extension_type_ == RtpExtension::kTransportSequenceNumberUri) {
275 (*receive_configs)[0].transport_cc = true;
276 (*receive_configs)[0].rtp_header_extensions.push_back(RtpExtension(
277 extension_type_.c_str(), kTransportSequenceNumberExtensionId));
278 }
279 }
280
247 void RampUpTester::OnCallsCreated(Call* sender_call, Call* receiver_call) { 281 void RampUpTester::OnCallsCreated(Call* sender_call, Call* receiver_call) {
248 sender_call_ = sender_call; 282 sender_call_ = sender_call;
249 } 283 }
250 284
251 bool RampUpTester::BitrateStatsPollingThread(void* obj) { 285 bool RampUpTester::BitrateStatsPollingThread(void* obj) {
252 return static_cast<RampUpTester*>(obj)->PollStats(); 286 return static_cast<RampUpTester*>(obj)->PollStats();
253 } 287 }
254 288
255 bool RampUpTester::PollStats() { 289 bool RampUpTester::PollStats() {
256 if (sender_call_) { 290 if (sender_call_) {
(...skipping 87 matching lines...) Expand 10 before | Expand all | Expand 10 after
344 void RampUpTester::PerformTest() { 378 void RampUpTester::PerformTest() {
345 test_start_ms_ = clock_->TimeInMilliseconds(); 379 test_start_ms_ = clock_->TimeInMilliseconds();
346 poller_thread_.Start(); 380 poller_thread_.Start();
347 EXPECT_TRUE(Wait()) << "Timed out while waiting for ramp-up to complete."; 381 EXPECT_TRUE(Wait()) << "Timed out while waiting for ramp-up to complete.";
348 TriggerTestDone(); 382 TriggerTestDone();
349 poller_thread_.Stop(); 383 poller_thread_.Stop();
350 } 384 }
351 385
352 RampUpDownUpTester::RampUpDownUpTester(size_t num_video_streams, 386 RampUpDownUpTester::RampUpDownUpTester(size_t num_video_streams,
353 size_t num_audio_streams, 387 size_t num_audio_streams,
388 size_t num_flexfec_streams,
354 unsigned int start_bitrate_bps, 389 unsigned int start_bitrate_bps,
355 const std::string& extension_type, 390 const std::string& extension_type,
356 bool rtx, 391 bool rtx,
357 bool red) 392 bool red)
358 : RampUpTester(num_video_streams, 393 : RampUpTester(num_video_streams,
359 num_audio_streams, 394 num_audio_streams,
395 num_flexfec_streams,
360 start_bitrate_bps, 396 start_bitrate_bps,
361 0, 397 0,
362 extension_type, 398 extension_type,
363 rtx, 399 rtx,
364 red, 400 red,
365 true), 401 true),
366 test_state_(kFirstRampup), 402 test_state_(kFirstRampup),
367 state_start_ms_(clock_->TimeInMilliseconds()), 403 state_start_ms_(clock_->TimeInMilliseconds()),
368 interval_start_ms_(clock_->TimeInMilliseconds()), 404 interval_start_ms_(clock_->TimeInMilliseconds()),
369 sent_bytes_(0) { 405 sent_bytes_(0) {
(...skipping 61 matching lines...) Expand 10 before | Expand all | Expand 10 after
431 int RampUpDownUpTester::GetHighLinkCapacity() const { 467 int RampUpDownUpTester::GetHighLinkCapacity() const {
432 return 4 * GetExpectedHighBitrate() / (3 * 1000); 468 return 4 * GetExpectedHighBitrate() / (3 * 1000);
433 } 469 }
434 470
435 void RampUpDownUpTester::EvolveTestState(int bitrate_bps, bool suspended) { 471 void RampUpDownUpTester::EvolveTestState(int bitrate_bps, bool suspended) {
436 int64_t now = clock_->TimeInMilliseconds(); 472 int64_t now = clock_->TimeInMilliseconds();
437 switch (test_state_) { 473 switch (test_state_) {
438 case kFirstRampup: { 474 case kFirstRampup: {
439 EXPECT_FALSE(suspended); 475 EXPECT_FALSE(suspended);
440 if (bitrate_bps >= GetExpectedHighBitrate()) { 476 if (bitrate_bps >= GetExpectedHighBitrate()) {
477 webrtc::test::PrintResult("ramp_up_down_up", GetModifierString(),
478 "first_rampup", now - state_start_ms_, "ms",
479 false);
480 if (num_flexfec_streams_ > 0) {
481 // Increase loss rate and delay and wait for FEC to be produced.
482 forward_transport_config_.loss_percent = 25;
483 forward_transport_config_.queue_delay_ms = 100;
484 }
485 test_state_ = kWaitForFec;
486 send_transport_->SetConfig(forward_transport_config_);
487 }
488 break;
489 }
490 case kWaitForFec: {
491 size_t flex_fec_bytes = 0;
492 if (num_flexfec_streams_ > 0) {
493 webrtc::VideoSendStream::Stats stats = send_stream_->GetStats();
494 for (const auto& kv : stats.substreams)
495 flex_fec_bytes += kv.second.rtp_stats.fec.TotalBytes();
496 }
497 if (num_flexfec_streams_ == 0 || flex_fec_bytes > 0) {
terelius 2017/02/20 17:42:37 How about functions SetLossRates(r1,r2,r3) and Set
stefan-webrtc 2017/02/21 09:09:45 I improved it quite a bit, but not exactly how you
441 // The first ramp-up has reached the target bitrate. Change the 498 // The first ramp-up has reached the target bitrate. Change the
442 // channel limit, and move to the next test state. 499 // channel limit, and move to the next test state.
443 forward_transport_config_.link_capacity_kbps = 500 forward_transport_config_.link_capacity_kbps =
444 kLowBandwidthLimitBps / 1000; 501 kLowBandwidthLimitBps / 1000;
502 forward_transport_config_.loss_percent = 0;
445 send_transport_->SetConfig(forward_transport_config_); 503 send_transport_->SetConfig(forward_transport_config_);
446 test_state_ = kLowRate;
447 webrtc::test::PrintResult("ramp_up_down_up", GetModifierString(),
448 "first_rampup", now - state_start_ms_, "ms",
449 false);
450 state_start_ms_ = now; 504 state_start_ms_ = now;
451 interval_start_ms_ = now; 505 interval_start_ms_ = now;
452 sent_bytes_ = 0; 506 sent_bytes_ = 0;
507 test_state_ = kLowRate;
453 } 508 }
454 break; 509 break;
455 } 510 }
456 case kLowRate: { 511 case kLowRate: {
457 // Audio streams are never suspended. 512 // Audio streams are never suspended.
458 bool check_suspend_state = num_video_streams_ > 0; 513 bool check_suspend_state = num_video_streams_ > 0;
459 if (bitrate_bps < kExpectedLowBitrateBps && 514 if (bitrate_bps < kExpectedLowBitrateBps &&
460 suspended == check_suspend_state) { 515 suspended == check_suspend_state) {
461 // The ramp-down was successful. Change the channel limit back to a 516 // The ramp-down was successful. Change the channel limit back to a
462 // high value, and move to the next test state. 517 // high value, and move to the next test state.
(...skipping 29 matching lines...) Expand all
492 547
493 virtual ~RampUpTest() { 548 virtual ~RampUpTest() {
494 EXPECT_EQ(nullptr, video_send_stream_); 549 EXPECT_EQ(nullptr, video_send_stream_);
495 EXPECT_TRUE(video_receive_streams_.empty()); 550 EXPECT_TRUE(video_receive_streams_.empty());
496 } 551 }
497 }; 552 };
498 553
499 static const uint32_t kStartBitrateBps = 60000; 554 static const uint32_t kStartBitrateBps = 60000;
500 555
501 TEST_F(RampUpTest, UpDownUpAbsSendTimeSimulcastRedRtx) { 556 TEST_F(RampUpTest, UpDownUpAbsSendTimeSimulcastRedRtx) {
502 RampUpDownUpTester test(3, 0, kStartBitrateBps, RtpExtension::kAbsSendTimeUri, 557 RampUpDownUpTester test(3, 0, 0, kStartBitrateBps,
503 true, true); 558 RtpExtension::kAbsSendTimeUri, true, true);
504 RunBaseTest(&test); 559 RunBaseTest(&test);
505 } 560 }
506 561
507 TEST_F(RampUpTest, UpDownUpTransportSequenceNumberRtx) { 562 TEST_F(RampUpTest, UpDownUpTransportSequenceNumberRtx) {
508 RampUpDownUpTester test(3, 0, kStartBitrateBps, 563 RampUpDownUpTester test(1, 0, 0, kStartBitrateBps,
terelius 2017/02/20 17:42:37 Why change the number of streams here? Is it becau
stefan-webrtc 2017/02/21 09:09:45 Mistake. Changing back. :)
564 RtpExtension::kTransportSequenceNumberUri, true,
565 false);
566 RunBaseTest(&test);
567 }
568
569 TEST_F(RampUpTest, UpDownUpTransportSequenceNumberPacketLoss) {
570 RampUpDownUpTester test(1, 0, 1, kStartBitrateBps,
509 RtpExtension::kTransportSequenceNumberUri, true, 571 RtpExtension::kTransportSequenceNumberUri, true,
510 false); 572 false);
511 RunBaseTest(&test); 573 RunBaseTest(&test);
512 } 574 }
513 575
514 TEST_F(RampUpTest, UpDownUpAudioVideoTransportSequenceNumberRtx) { 576 TEST_F(RampUpTest, UpDownUpAudioVideoTransportSequenceNumberRtx) {
515 RampUpDownUpTester test(3, 1, kStartBitrateBps, 577 RampUpDownUpTester test(3, 1, 0, kStartBitrateBps,
516 RtpExtension::kTransportSequenceNumberUri, true, 578 RtpExtension::kTransportSequenceNumberUri, true,
517 false); 579 false);
518 RunBaseTest(&test); 580 RunBaseTest(&test);
519 } 581 }
520 582
521 TEST_F(RampUpTest, UpDownUpAudioTransportSequenceNumberRtx) { 583 TEST_F(RampUpTest, UpDownUpAudioTransportSequenceNumberRtx) {
522 RampUpDownUpTester test(0, 1, kStartBitrateBps, 584 RampUpDownUpTester test(0, 1, 0, kStartBitrateBps,
523 RtpExtension::kTransportSequenceNumberUri, true, 585 RtpExtension::kTransportSequenceNumberUri, true,
524 false); 586 false);
525 RunBaseTest(&test); 587 RunBaseTest(&test);
526 } 588 }
527 589
528 TEST_F(RampUpTest, TOffsetSimulcastRedRtx) { 590 TEST_F(RampUpTest, TOffsetSimulcastRedRtx) {
529 RampUpTester test(3, 0, 0, 0, RtpExtension::kTimestampOffsetUri, true, true, 591 RampUpTester test(3, 0, 0, 0, 0, RtpExtension::kTimestampOffsetUri, true,
530 true); 592 true, true);
531 RunBaseTest(&test); 593 RunBaseTest(&test);
532 } 594 }
533 595
534 TEST_F(RampUpTest, AbsSendTime) { 596 TEST_F(RampUpTest, AbsSendTime) {
535 RampUpTester test(1, 0, 0, 0, RtpExtension::kAbsSendTimeUri, false, false, 597 RampUpTester test(1, 0, 0, 0, 0, RtpExtension::kAbsSendTimeUri, false, false,
536 true); 598 true);
537 RunBaseTest(&test); 599 RunBaseTest(&test);
538 } 600 }
539 601
540 TEST_F(RampUpTest, AbsSendTimeSimulcastRedRtx) { 602 TEST_F(RampUpTest, AbsSendTimeSimulcastRedRtx) {
541 RampUpTester test(3, 0, 0, 0, RtpExtension::kAbsSendTimeUri, true, true, 603 RampUpTester test(3, 0, 0, 0, 0, RtpExtension::kAbsSendTimeUri, true, true,
542 true); 604 true);
543 RunBaseTest(&test); 605 RunBaseTest(&test);
544 } 606 }
545 607
546 TEST_F(RampUpTest, TransportSequenceNumber) { 608 TEST_F(RampUpTest, TransportSequenceNumber) {
547 RampUpTester test(1, 0, 0, 0, RtpExtension::kTransportSequenceNumberUri, 609 RampUpTester test(1, 0, 0, 0, 0, RtpExtension::kTransportSequenceNumberUri,
548 false, false, true); 610 false, false, true);
549 RunBaseTest(&test); 611 RunBaseTest(&test);
550 } 612 }
551 613
552 TEST_F(RampUpTest, TransportSequenceNumberSimulcast) { 614 TEST_F(RampUpTest, TransportSequenceNumberSimulcast) {
553 RampUpTester test(3, 0, 0, 0, RtpExtension::kTransportSequenceNumberUri, 615 RampUpTester test(3, 0, 0, 0, 0, RtpExtension::kTransportSequenceNumberUri,
554 false, false, true); 616 false, false, true);
555 RunBaseTest(&test); 617 RunBaseTest(&test);
556 } 618 }
557 619
558 TEST_F(RampUpTest, TransportSequenceNumberSimulcastRedRtx) { 620 TEST_F(RampUpTest, TransportSequenceNumberSimulcastRedRtx) {
559 RampUpTester test(3, 0, 0, 0, RtpExtension::kTransportSequenceNumberUri, 621 RampUpTester test(3, 0, 0, 0, 0, RtpExtension::kTransportSequenceNumberUri,
560 true, true, true); 622 true, true, true);
561 RunBaseTest(&test); 623 RunBaseTest(&test);
562 } 624 }
563 625
564 TEST_F(RampUpTest, AudioTransportSequenceNumber) { 626 TEST_F(RampUpTest, AudioTransportSequenceNumber) {
565 RampUpTester test(0, 1, 300000, 10000, 627 RampUpTester test(0, 1, 0, 300000, 10000,
566 RtpExtension::kTransportSequenceNumberUri, false, false, 628 RtpExtension::kTransportSequenceNumberUri, false, false,
567 false); 629 false);
568 RunBaseTest(&test); 630 RunBaseTest(&test);
569 } 631 }
570 } // namespace webrtc 632 } // namespace webrtc
OLDNEW
« no previous file with comments | « webrtc/call/rampup_tests.h ('k') | webrtc/test/call_test.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698