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

Side by Side Diff: webrtc/video/end_to_end_tests.cc

Issue 1537273003: Step 1 to prepare call_test.* for combined audio/video tests. (Closed) Base URL: https://chromium.googlesource.com/external/webrtc.git@master
Patch Set: Cleanups 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
« no previous file with comments | « webrtc/test/call_test.cc ('k') | webrtc/video/rampup_tests.h » ('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 #include <algorithm> 10 #include <algorithm>
(...skipping 36 matching lines...) Expand 10 before | Expand all | Expand 10 after
47 47
48 namespace webrtc { 48 namespace webrtc {
49 49
50 static const int kSilenceTimeoutMs = 2000; 50 static const int kSilenceTimeoutMs = 2000;
51 51
52 class EndToEndTest : public test::CallTest { 52 class EndToEndTest : public test::CallTest {
53 public: 53 public:
54 EndToEndTest() {} 54 EndToEndTest() {}
55 55
56 virtual ~EndToEndTest() { 56 virtual ~EndToEndTest() {
57 EXPECT_EQ(nullptr, send_stream_); 57 EXPECT_EQ(nullptr, video_send_stream_);
58 EXPECT_TRUE(receive_streams_.empty()); 58 EXPECT_TRUE(video_receive_streams_.empty());
59 } 59 }
60 60
61 protected: 61 protected:
62 class UnusedTransport : public Transport { 62 class UnusedTransport : public Transport {
63 private: 63 private:
64 bool SendRtp(const uint8_t* packet, 64 bool SendRtp(const uint8_t* packet,
65 size_t length, 65 size_t length,
66 const PacketOptions& options) override { 66 const PacketOptions& options) override {
67 ADD_FAILURE() << "Unexpected RTP sent."; 67 ADD_FAILURE() << "Unexpected RTP sent.";
68 return false; 68 return false;
(...skipping 16 matching lines...) Expand all
85 85
86 TEST_F(EndToEndTest, ReceiverCanBeStartedTwice) { 86 TEST_F(EndToEndTest, ReceiverCanBeStartedTwice) {
87 CreateCalls(Call::Config(), Call::Config()); 87 CreateCalls(Call::Config(), Call::Config());
88 88
89 test::NullTransport transport; 89 test::NullTransport transport;
90 CreateSendConfig(1, &transport); 90 CreateSendConfig(1, &transport);
91 CreateMatchingReceiveConfigs(&transport); 91 CreateMatchingReceiveConfigs(&transport);
92 92
93 CreateStreams(); 93 CreateStreams();
94 94
95 receive_streams_[0]->Start(); 95 video_receive_streams_[0]->Start();
96 receive_streams_[0]->Start(); 96 video_receive_streams_[0]->Start();
97 97
98 DestroyStreams(); 98 DestroyStreams();
99 } 99 }
100 100
101 TEST_F(EndToEndTest, ReceiverCanBeStoppedTwice) { 101 TEST_F(EndToEndTest, ReceiverCanBeStoppedTwice) {
102 CreateCalls(Call::Config(), Call::Config()); 102 CreateCalls(Call::Config(), Call::Config());
103 103
104 test::NullTransport transport; 104 test::NullTransport transport;
105 CreateSendConfig(1, &transport); 105 CreateSendConfig(1, &transport);
106 CreateMatchingReceiveConfigs(&transport); 106 CreateMatchingReceiveConfigs(&transport);
107 107
108 CreateStreams(); 108 CreateStreams();
109 109
110 receive_streams_[0]->Stop(); 110 video_receive_streams_[0]->Stop();
111 receive_streams_[0]->Stop(); 111 video_receive_streams_[0]->Stop();
112 112
113 DestroyStreams(); 113 DestroyStreams();
114 } 114 }
115 115
116 TEST_F(EndToEndTest, RendersSingleDelayedFrame) { 116 TEST_F(EndToEndTest, RendersSingleDelayedFrame) {
117 static const int kWidth = 320; 117 static const int kWidth = 320;
118 static const int kHeight = 240; 118 static const int kHeight = 240;
119 // This constant is chosen to be higher than the timeout in the video_render 119 // This constant is chosen to be higher than the timeout in the video_render
120 // module. This makes sure that frames aren't dropped if there are no other 120 // module. This makes sure that frames aren't dropped if there are no other
121 // frames in the queue. 121 // frames in the queue.
(...skipping 34 matching lines...) Expand 10 before | Expand all | Expand 10 after
156 156
157 test::DirectTransport sender_transport(sender_call_.get()); 157 test::DirectTransport sender_transport(sender_call_.get());
158 test::DirectTransport receiver_transport(receiver_call_.get()); 158 test::DirectTransport receiver_transport(receiver_call_.get());
159 sender_transport.SetReceiver(receiver_call_->Receiver()); 159 sender_transport.SetReceiver(receiver_call_->Receiver());
160 receiver_transport.SetReceiver(sender_call_->Receiver()); 160 receiver_transport.SetReceiver(sender_call_->Receiver());
161 161
162 CreateSendConfig(1, &sender_transport); 162 CreateSendConfig(1, &sender_transport);
163 CreateMatchingReceiveConfigs(&receiver_transport); 163 CreateMatchingReceiveConfigs(&receiver_transport);
164 164
165 TestFrameCallback pre_render_callback; 165 TestFrameCallback pre_render_callback;
166 receive_configs_[0].pre_render_callback = &pre_render_callback; 166 video_receive_configs_[0].pre_render_callback = &pre_render_callback;
167 receive_configs_[0].renderer = &renderer; 167 video_receive_configs_[0].renderer = &renderer;
168 168
169 CreateStreams(); 169 CreateStreams();
170 Start(); 170 Start();
171 171
172 // Create frames that are smaller than the send width/height, this is done to 172 // Create frames that are smaller than the send width/height, this is done to
173 // check that the callbacks are done after processing video. 173 // check that the callbacks are done after processing video.
174 rtc::scoped_ptr<test::FrameGenerator> frame_generator( 174 rtc::scoped_ptr<test::FrameGenerator> frame_generator(
175 test::FrameGenerator::CreateChromaGenerator(kWidth, kHeight)); 175 test::FrameGenerator::CreateChromaGenerator(kWidth, kHeight));
176 send_stream_->Input()->IncomingCapturedFrame(*frame_generator->NextFrame()); 176 video_send_stream_->Input()->IncomingCapturedFrame(
177 *frame_generator->NextFrame());
177 EXPECT_TRUE(pre_render_callback.Wait()) 178 EXPECT_TRUE(pre_render_callback.Wait())
178 << "Timed out while waiting for pre-render callback."; 179 << "Timed out while waiting for pre-render callback.";
179 EXPECT_TRUE(renderer.Wait()) 180 EXPECT_TRUE(renderer.Wait())
180 << "Timed out while waiting for the frame to render."; 181 << "Timed out while waiting for the frame to render.";
181 182
182 Stop(); 183 Stop();
183 184
184 sender_transport.StopSending(); 185 sender_transport.StopSending();
185 receiver_transport.StopSending(); 186 receiver_transport.StopSending();
186 187
(...skipping 18 matching lines...) Expand all
205 206
206 CreateCalls(Call::Config(), Call::Config()); 207 CreateCalls(Call::Config(), Call::Config());
207 208
208 test::DirectTransport sender_transport(sender_call_.get()); 209 test::DirectTransport sender_transport(sender_call_.get());
209 test::DirectTransport receiver_transport(receiver_call_.get()); 210 test::DirectTransport receiver_transport(receiver_call_.get());
210 sender_transport.SetReceiver(receiver_call_->Receiver()); 211 sender_transport.SetReceiver(receiver_call_->Receiver());
211 receiver_transport.SetReceiver(sender_call_->Receiver()); 212 receiver_transport.SetReceiver(sender_call_->Receiver());
212 213
213 CreateSendConfig(1, &sender_transport); 214 CreateSendConfig(1, &sender_transport);
214 CreateMatchingReceiveConfigs(&receiver_transport); 215 CreateMatchingReceiveConfigs(&receiver_transport);
215 receive_configs_[0].renderer = &renderer; 216 video_receive_configs_[0].renderer = &renderer;
216 217
217 CreateStreams(); 218 CreateStreams();
218 Start(); 219 Start();
219 220
220 rtc::scoped_ptr<test::FrameGenerator> frame_generator( 221 rtc::scoped_ptr<test::FrameGenerator> frame_generator(
221 test::FrameGenerator::CreateChromaGenerator( 222 test::FrameGenerator::CreateChromaGenerator(
222 encoder_config_.streams[0].width, encoder_config_.streams[0].height)); 223 video_encoder_config_.streams[0].width,
223 send_stream_->Input()->IncomingCapturedFrame(*frame_generator->NextFrame()); 224 video_encoder_config_.streams[0].height));
225 video_send_stream_->Input()->IncomingCapturedFrame(
226 *frame_generator->NextFrame());
224 227
225 EXPECT_TRUE(renderer.Wait()) 228 EXPECT_TRUE(renderer.Wait())
226 << "Timed out while waiting for the frame to render."; 229 << "Timed out while waiting for the frame to render.";
227 230
228 Stop(); 231 Stop();
229 232
230 sender_transport.StopSending(); 233 sender_transport.StopSending();
231 receiver_transport.StopSending(); 234 receiver_transport.StopSending();
232 235
233 DestroyStreams(); 236 DestroyStreams();
234 } 237 }
235 238
236 TEST_F(EndToEndTest, SendsAndReceivesVP9) { 239 TEST_F(EndToEndTest, SendsAndReceivesVP9) {
237 class VP9Observer : public test::EndToEndTest, public VideoRenderer { 240 class VP9Observer : public test::EndToEndTest, public VideoRenderer {
238 public: 241 public:
239 VP9Observer() 242 VP9Observer()
240 : EndToEndTest(2 * kDefaultTimeoutMs), 243 : EndToEndTest(2 * kDefaultTimeoutMs),
241 encoder_(VideoEncoder::Create(VideoEncoder::kVp9)), 244 encoder_(VideoEncoder::Create(VideoEncoder::kVp9)),
242 decoder_(VP9Decoder::Create()), 245 decoder_(VP9Decoder::Create()),
243 frame_counter_(0) {} 246 frame_counter_(0) {}
244 247
245 void PerformTest() override { 248 void PerformTest() override {
246 EXPECT_TRUE(Wait()) 249 EXPECT_TRUE(Wait())
247 << "Timed out while waiting for enough frames to be decoded."; 250 << "Timed out while waiting for enough frames to be decoded.";
248 } 251 }
249 252
250 void ModifyConfigs(VideoSendStream::Config* send_config, 253 void ModifyVideoConfigs(
251 std::vector<VideoReceiveStream::Config>* receive_configs, 254 VideoSendStream::Config* send_config,
252 VideoEncoderConfig* encoder_config) override { 255 std::vector<VideoReceiveStream::Config>* receive_configs,
256 VideoEncoderConfig* encoder_config) override {
253 send_config->encoder_settings.encoder = encoder_.get(); 257 send_config->encoder_settings.encoder = encoder_.get();
254 send_config->encoder_settings.payload_name = "VP9"; 258 send_config->encoder_settings.payload_name = "VP9";
255 send_config->encoder_settings.payload_type = 124; 259 send_config->encoder_settings.payload_type = 124;
256 encoder_config->streams[0].min_bitrate_bps = 50000; 260 encoder_config->streams[0].min_bitrate_bps = 50000;
257 encoder_config->streams[0].target_bitrate_bps = 261 encoder_config->streams[0].target_bitrate_bps =
258 encoder_config->streams[0].max_bitrate_bps = 2000000; 262 encoder_config->streams[0].max_bitrate_bps = 2000000;
259 263
260 (*receive_configs)[0].renderer = this; 264 (*receive_configs)[0].renderer = this;
261 (*receive_configs)[0].decoders.resize(1); 265 (*receive_configs)[0].decoders.resize(1);
262 (*receive_configs)[0].decoders[0].payload_type = 266 (*receive_configs)[0].decoders[0].payload_type =
(...skipping 27 matching lines...) Expand all
290 H264Observer() 294 H264Observer()
291 : EndToEndTest(2 * kDefaultTimeoutMs), 295 : EndToEndTest(2 * kDefaultTimeoutMs),
292 fake_encoder_(Clock::GetRealTimeClock()), 296 fake_encoder_(Clock::GetRealTimeClock()),
293 frame_counter_(0) {} 297 frame_counter_(0) {}
294 298
295 void PerformTest() override { 299 void PerformTest() override {
296 EXPECT_TRUE(Wait()) 300 EXPECT_TRUE(Wait())
297 << "Timed out while waiting for enough frames to be decoded."; 301 << "Timed out while waiting for enough frames to be decoded.";
298 } 302 }
299 303
300 void ModifyConfigs(VideoSendStream::Config* send_config, 304 void ModifyVideoConfigs(
301 std::vector<VideoReceiveStream::Config>* receive_configs, 305 VideoSendStream::Config* send_config,
302 VideoEncoderConfig* encoder_config) override { 306 std::vector<VideoReceiveStream::Config>* receive_configs,
307 VideoEncoderConfig* encoder_config) override {
303 send_config->rtp.nack.rtp_history_ms = 308 send_config->rtp.nack.rtp_history_ms =
304 (*receive_configs)[0].rtp.nack.rtp_history_ms = kNackRtpHistoryMs; 309 (*receive_configs)[0].rtp.nack.rtp_history_ms = kNackRtpHistoryMs;
305 send_config->encoder_settings.encoder = &fake_encoder_; 310 send_config->encoder_settings.encoder = &fake_encoder_;
306 send_config->encoder_settings.payload_name = "H264"; 311 send_config->encoder_settings.payload_name = "H264";
307 send_config->encoder_settings.payload_type = kFakeSendPayloadType; 312 send_config->encoder_settings.payload_type = kFakeSendPayloadType;
308 encoder_config->streams[0].min_bitrate_bps = 50000; 313 encoder_config->streams[0].min_bitrate_bps = 50000;
309 encoder_config->streams[0].target_bitrate_bps = 314 encoder_config->streams[0].target_bitrate_bps =
310 encoder_config->streams[0].max_bitrate_bps = 2000000; 315 encoder_config->streams[0].max_bitrate_bps = 2000000;
311 316
312 (*receive_configs)[0].renderer = this; 317 (*receive_configs)[0].renderer = this;
(...skipping 109 matching lines...) Expand 10 before | Expand all | Expand 10 after
422 while (packet_type != RTCPUtility::RTCPPacketTypes::kInvalid) { 427 while (packet_type != RTCPUtility::RTCPPacketTypes::kInvalid) {
423 if (packet_type == RTCPUtility::RTCPPacketTypes::kRtpfbNack) { 428 if (packet_type == RTCPUtility::RTCPPacketTypes::kRtpfbNack) {
424 --nacks_left_; 429 --nacks_left_;
425 break; 430 break;
426 } 431 }
427 packet_type = parser.Iterate(); 432 packet_type = parser.Iterate();
428 } 433 }
429 return SEND_PACKET; 434 return SEND_PACKET;
430 } 435 }
431 436
432 void ModifyConfigs(VideoSendStream::Config* send_config, 437 void ModifyVideoConfigs(
433 std::vector<VideoReceiveStream::Config>* receive_configs, 438 VideoSendStream::Config* send_config,
434 VideoEncoderConfig* encoder_config) override { 439 std::vector<VideoReceiveStream::Config>* receive_configs,
440 VideoEncoderConfig* encoder_config) override {
435 send_config->rtp.nack.rtp_history_ms = kNackRtpHistoryMs; 441 send_config->rtp.nack.rtp_history_ms = kNackRtpHistoryMs;
436 (*receive_configs)[0].rtp.nack.rtp_history_ms = kNackRtpHistoryMs; 442 (*receive_configs)[0].rtp.nack.rtp_history_ms = kNackRtpHistoryMs;
437 } 443 }
438 444
439 void PerformTest() override { 445 void PerformTest() override {
440 EXPECT_TRUE(Wait()) 446 EXPECT_TRUE(Wait())
441 << "Timed out waiting for packets to be NACKed, retransmitted and " 447 << "Timed out waiting for packets to be NACKed, retransmitted and "
442 "rendered."; 448 "rendered.";
443 } 449 }
444 450
(...skipping 73 matching lines...) Expand 10 before | Expand all | Expand 10 after
518 } 524 }
519 525
520 bool IsTextureSupported() const override { return false; } 526 bool IsTextureSupported() const override { return false; }
521 527
522 enum { 528 enum {
523 kFirstPacket, 529 kFirstPacket,
524 kDropEveryOtherPacketUntilFec, 530 kDropEveryOtherPacketUntilFec,
525 kDropNextMediaPacket, 531 kDropNextMediaPacket,
526 } state_; 532 } state_;
527 533
528 void ModifyConfigs(VideoSendStream::Config* send_config, 534 void ModifyVideoConfigs(
529 std::vector<VideoReceiveStream::Config>* receive_configs, 535 VideoSendStream::Config* send_config,
530 VideoEncoderConfig* encoder_config) override { 536 std::vector<VideoReceiveStream::Config>* receive_configs,
537 VideoEncoderConfig* encoder_config) override {
531 // TODO(pbos): Run this test with combined NACK/FEC enabled as well. 538 // TODO(pbos): Run this test with combined NACK/FEC enabled as well.
532 // int rtp_history_ms = 1000; 539 // int rtp_history_ms = 1000;
533 // (*receive_configs)[0].rtp.nack.rtp_history_ms = rtp_history_ms; 540 // (*receive_configs)[0].rtp.nack.rtp_history_ms = rtp_history_ms;
534 // send_config->rtp.nack.rtp_history_ms = rtp_history_ms; 541 // send_config->rtp.nack.rtp_history_ms = rtp_history_ms;
535 send_config->rtp.fec.red_payload_type = kRedPayloadType; 542 send_config->rtp.fec.red_payload_type = kRedPayloadType;
536 send_config->rtp.fec.ulpfec_payload_type = kUlpfecPayloadType; 543 send_config->rtp.fec.ulpfec_payload_type = kUlpfecPayloadType;
537 544
538 (*receive_configs)[0].rtp.fec.red_payload_type = kRedPayloadType; 545 (*receive_configs)[0].rtp.fec.red_payload_type = kRedPayloadType;
539 (*receive_configs)[0].rtp.fec.ulpfec_payload_type = kUlpfecPayloadType; 546 (*receive_configs)[0].rtp.fec.ulpfec_payload_type = kUlpfecPayloadType;
540 (*receive_configs)[0].renderer = this; 547 (*receive_configs)[0].renderer = this;
(...skipping 93 matching lines...) Expand 10 before | Expand all | Expand 10 after
634 641
635 // TODO(holmer): Investigate why we don't send FEC packets when the bitrate 642 // TODO(holmer): Investigate why we don't send FEC packets when the bitrate
636 // is 10 kbps. 643 // is 10 kbps.
637 Call::Config GetSenderCallConfig() override { 644 Call::Config GetSenderCallConfig() override {
638 Call::Config config; 645 Call::Config config;
639 const int kMinBitrateBps = 30000; 646 const int kMinBitrateBps = 30000;
640 config.bitrate_config.min_bitrate_bps = kMinBitrateBps; 647 config.bitrate_config.min_bitrate_bps = kMinBitrateBps;
641 return config; 648 return config;
642 } 649 }
643 650
644 void ModifyConfigs(VideoSendStream::Config* send_config, 651 void ModifyVideoConfigs(
645 std::vector<VideoReceiveStream::Config>* receive_configs, 652 VideoSendStream::Config* send_config,
646 VideoEncoderConfig* encoder_config) override { 653 std::vector<VideoReceiveStream::Config>* receive_configs,
654 VideoEncoderConfig* encoder_config) override {
647 // Configure hybrid NACK/FEC. 655 // Configure hybrid NACK/FEC.
648 send_config->rtp.nack.rtp_history_ms = kNackRtpHistoryMs; 656 send_config->rtp.nack.rtp_history_ms = kNackRtpHistoryMs;
649 send_config->rtp.fec.red_payload_type = kRedPayloadType; 657 send_config->rtp.fec.red_payload_type = kRedPayloadType;
650 send_config->rtp.fec.ulpfec_payload_type = kUlpfecPayloadType; 658 send_config->rtp.fec.ulpfec_payload_type = kUlpfecPayloadType;
651 (*receive_configs)[0].rtp.nack.rtp_history_ms = kNackRtpHistoryMs; 659 (*receive_configs)[0].rtp.nack.rtp_history_ms = kNackRtpHistoryMs;
652 (*receive_configs)[0].rtp.fec.red_payload_type = kRedPayloadType; 660 (*receive_configs)[0].rtp.fec.red_payload_type = kRedPayloadType;
653 (*receive_configs)[0].rtp.fec.ulpfec_payload_type = kUlpfecPayloadType; 661 (*receive_configs)[0].rtp.fec.ulpfec_payload_type = kUlpfecPayloadType;
654 } 662 }
655 663
656 void PerformTest() override { 664 void PerformTest() override {
(...skipping 76 matching lines...) Expand 10 before | Expand all | Expand 10 after
733 } 741 }
734 742
735 void FrameCallback(VideoFrame* frame) override { 743 void FrameCallback(VideoFrame* frame) override {
736 rtc::CritScope lock(&crit_); 744 rtc::CritScope lock(&crit_);
737 if (frame->timestamp() == retransmitted_timestamp_) { 745 if (frame->timestamp() == retransmitted_timestamp_) {
738 EXPECT_TRUE(frame_retransmitted_); 746 EXPECT_TRUE(frame_retransmitted_);
739 observation_complete_.Set(); 747 observation_complete_.Set();
740 } 748 }
741 } 749 }
742 750
743 void ModifyConfigs(VideoSendStream::Config* send_config, 751 void ModifyVideoConfigs(
744 std::vector<VideoReceiveStream::Config>* receive_configs, 752 VideoSendStream::Config* send_config,
745 VideoEncoderConfig* encoder_config) override { 753 std::vector<VideoReceiveStream::Config>* receive_configs,
754 VideoEncoderConfig* encoder_config) override {
746 send_config->rtp.nack.rtp_history_ms = kNackRtpHistoryMs; 755 send_config->rtp.nack.rtp_history_ms = kNackRtpHistoryMs;
747 (*receive_configs)[0].pre_render_callback = this; 756 (*receive_configs)[0].pre_render_callback = this;
748 (*receive_configs)[0].rtp.nack.rtp_history_ms = kNackRtpHistoryMs; 757 (*receive_configs)[0].rtp.nack.rtp_history_ms = kNackRtpHistoryMs;
749 758
750 if (payload_type_ == kRedPayloadType) { 759 if (payload_type_ == kRedPayloadType) {
751 send_config->rtp.fec.ulpfec_payload_type = kUlpfecPayloadType; 760 send_config->rtp.fec.ulpfec_payload_type = kUlpfecPayloadType;
752 send_config->rtp.fec.red_payload_type = kRedPayloadType; 761 send_config->rtp.fec.red_payload_type = kRedPayloadType;
753 (*receive_configs)[0].rtp.fec.red_payload_type = kRedPayloadType; 762 (*receive_configs)[0].rtp.fec.red_payload_type = kRedPayloadType;
754 (*receive_configs)[0].rtp.fec.ulpfec_payload_type = kUlpfecPayloadType; 763 (*receive_configs)[0].rtp.fec.ulpfec_payload_type = kUlpfecPayloadType;
755 } 764 }
(...skipping 108 matching lines...) Expand 10 before | Expand all | Expand 10 after
864 CreateCalls(Call::Config(), Call::Config()); 873 CreateCalls(Call::Config(), Call::Config());
865 874
866 test::DirectTransport sender_transport(sender_call_.get()); 875 test::DirectTransport sender_transport(sender_call_.get());
867 test::DirectTransport receiver_transport(receiver_call_.get()); 876 test::DirectTransport receiver_transport(receiver_call_.get());
868 sender_transport.SetReceiver(receiver_call_->Receiver()); 877 sender_transport.SetReceiver(receiver_call_->Receiver());
869 receiver_transport.SetReceiver(sender_call_->Receiver()); 878 receiver_transport.SetReceiver(sender_call_->Receiver());
870 879
871 CreateSendConfig(1, &sender_transport); 880 CreateSendConfig(1, &sender_transport);
872 rtc::scoped_ptr<VideoEncoder> encoder( 881 rtc::scoped_ptr<VideoEncoder> encoder(
873 VideoEncoder::Create(VideoEncoder::kVp8)); 882 VideoEncoder::Create(VideoEncoder::kVp8));
874 send_config_.encoder_settings.encoder = encoder.get(); 883 video_send_config_.encoder_settings.encoder = encoder.get();
875 send_config_.encoder_settings.payload_name = "VP8"; 884 video_send_config_.encoder_settings.payload_name = "VP8";
876 ASSERT_EQ(1u, encoder_config_.streams.size()) << "Test setup error."; 885 ASSERT_EQ(1u, video_encoder_config_.streams.size()) << "Test setup error.";
877 encoder_config_.streams[0].width = kWidth; 886 video_encoder_config_.streams[0].width = kWidth;
878 encoder_config_.streams[0].height = kHeight; 887 video_encoder_config_.streams[0].height = kHeight;
879 send_config_.pre_encode_callback = &pre_encode_callback; 888 video_send_config_.pre_encode_callback = &pre_encode_callback;
880 889
881 CreateMatchingReceiveConfigs(&receiver_transport); 890 CreateMatchingReceiveConfigs(&receiver_transport);
882 receive_configs_[0].pre_render_callback = &pre_render_callback; 891 video_receive_configs_[0].pre_render_callback = &pre_render_callback;
883 receive_configs_[0].renderer = &renderer; 892 video_receive_configs_[0].renderer = &renderer;
884 893
885 CreateStreams(); 894 CreateStreams();
886 Start(); 895 Start();
887 896
888 // Create frames that are smaller than the send width/height, this is done to 897 // Create frames that are smaller than the send width/height, this is done to
889 // check that the callbacks are done after processing video. 898 // check that the callbacks are done after processing video.
890 rtc::scoped_ptr<test::FrameGenerator> frame_generator( 899 rtc::scoped_ptr<test::FrameGenerator> frame_generator(
891 test::FrameGenerator::CreateChromaGenerator(kWidth / 2, kHeight / 2)); 900 test::FrameGenerator::CreateChromaGenerator(kWidth / 2, kHeight / 2));
892 send_stream_->Input()->IncomingCapturedFrame(*frame_generator->NextFrame()); 901 video_send_stream_->Input()->IncomingCapturedFrame(
902 *frame_generator->NextFrame());
893 903
894 EXPECT_TRUE(pre_encode_callback.Wait()) 904 EXPECT_TRUE(pre_encode_callback.Wait())
895 << "Timed out while waiting for pre-encode callback."; 905 << "Timed out while waiting for pre-encode callback.";
896 EXPECT_TRUE(pre_render_callback.Wait()) 906 EXPECT_TRUE(pre_render_callback.Wait())
897 << "Timed out while waiting for pre-render callback."; 907 << "Timed out while waiting for pre-render callback.";
898 EXPECT_TRUE(renderer.Wait()) 908 EXPECT_TRUE(renderer.Wait())
899 << "Timed out while waiting for the frame to render."; 909 << "Timed out while waiting for the frame to render.";
900 910
901 Stop(); 911 Stop();
902 912
(...skipping 60 matching lines...) Expand 10 before | Expand all | Expand 10 after
963 if (received_pli_ && 973 if (received_pli_ &&
964 video_frame.timestamp() > highest_dropped_timestamp_) { 974 video_frame.timestamp() > highest_dropped_timestamp_) {
965 observation_complete_.Set(); 975 observation_complete_.Set();
966 } 976 }
967 if (!received_pli_) 977 if (!received_pli_)
968 frames_to_drop_ = kPacketsToDrop; 978 frames_to_drop_ = kPacketsToDrop;
969 } 979 }
970 980
971 bool IsTextureSupported() const override { return false; } 981 bool IsTextureSupported() const override { return false; }
972 982
973 void ModifyConfigs(VideoSendStream::Config* send_config, 983 void ModifyVideoConfigs(
974 std::vector<VideoReceiveStream::Config>* receive_configs, 984 VideoSendStream::Config* send_config,
975 VideoEncoderConfig* encoder_config) override { 985 std::vector<VideoReceiveStream::Config>* receive_configs,
986 VideoEncoderConfig* encoder_config) override {
976 send_config->rtp.nack.rtp_history_ms = rtp_history_ms_; 987 send_config->rtp.nack.rtp_history_ms = rtp_history_ms_;
977 (*receive_configs)[0].rtp.nack.rtp_history_ms = rtp_history_ms_; 988 (*receive_configs)[0].rtp.nack.rtp_history_ms = rtp_history_ms_;
978 (*receive_configs)[0].renderer = this; 989 (*receive_configs)[0].renderer = this;
979 } 990 }
980 991
981 void PerformTest() override { 992 void PerformTest() override {
982 EXPECT_TRUE(Wait()) << "Timed out waiting for PLI to be " 993 EXPECT_TRUE(Wait()) << "Timed out waiting for PLI to be "
983 "received and a frame to be " 994 "received and a frame to be "
984 "rendered afterwards."; 995 "rendered afterwards.";
985 } 996 }
(...skipping 54 matching lines...) Expand 10 before | Expand all | Expand 10 after
1040 send_transport.SetReceiver(&input_observer); 1051 send_transport.SetReceiver(&input_observer);
1041 receive_transport.SetReceiver(sender_call_->Receiver()); 1052 receive_transport.SetReceiver(sender_call_->Receiver());
1042 1053
1043 CreateSendConfig(1, &send_transport); 1054 CreateSendConfig(1, &send_transport);
1044 CreateMatchingReceiveConfigs(&receive_transport); 1055 CreateMatchingReceiveConfigs(&receive_transport);
1045 1056
1046 CreateStreams(); 1057 CreateStreams();
1047 CreateFrameGeneratorCapturer(); 1058 CreateFrameGeneratorCapturer();
1048 Start(); 1059 Start();
1049 1060
1050 receiver_call_->DestroyVideoReceiveStream(receive_streams_[0]); 1061 receiver_call_->DestroyVideoReceiveStream(video_receive_streams_[0]);
1051 receive_streams_.clear(); 1062 video_receive_streams_.clear();
1052 1063
1053 // Wait() waits for a received packet. 1064 // Wait() waits for a received packet.
1054 EXPECT_TRUE(input_observer.Wait()); 1065 EXPECT_TRUE(input_observer.Wait());
1055 1066
1056 Stop(); 1067 Stop();
1057 1068
1058 DestroyStreams(); 1069 DestroyStreams();
1059 1070
1060 send_transport.StopSending(); 1071 send_transport.StopSending();
1061 receive_transport.StopSending(); 1072 receive_transport.StopSending();
(...skipping 50 matching lines...) Expand 10 before | Expand all | Expand 10 after
1112 observation_complete_.Set(); 1123 observation_complete_.Set();
1113 break; 1124 break;
1114 case RtcpMode::kOff: 1125 case RtcpMode::kOff:
1115 RTC_NOTREACHED(); 1126 RTC_NOTREACHED();
1116 break; 1127 break;
1117 } 1128 }
1118 1129
1119 return SEND_PACKET; 1130 return SEND_PACKET;
1120 } 1131 }
1121 1132
1122 void ModifyConfigs(VideoSendStream::Config* send_config, 1133 void ModifyVideoConfigs(
1123 std::vector<VideoReceiveStream::Config>* receive_configs, 1134 VideoSendStream::Config* send_config,
1124 VideoEncoderConfig* encoder_config) override { 1135 std::vector<VideoReceiveStream::Config>* receive_configs,
1136 VideoEncoderConfig* encoder_config) override {
1125 send_config->rtp.nack.rtp_history_ms = kNackRtpHistoryMs; 1137 send_config->rtp.nack.rtp_history_ms = kNackRtpHistoryMs;
1126 (*receive_configs)[0].rtp.nack.rtp_history_ms = kNackRtpHistoryMs; 1138 (*receive_configs)[0].rtp.nack.rtp_history_ms = kNackRtpHistoryMs;
1127 (*receive_configs)[0].rtp.rtcp_mode = rtcp_mode_; 1139 (*receive_configs)[0].rtp.rtcp_mode = rtcp_mode_;
1128 } 1140 }
1129 1141
1130 void PerformTest() override { 1142 void PerformTest() override {
1131 EXPECT_TRUE(Wait()) 1143 EXPECT_TRUE(Wait())
1132 << (rtcp_mode_ == RtcpMode::kCompound 1144 << (rtcp_mode_ == RtcpMode::kCompound
1133 ? "Timed out before observing enough compound packets." 1145 ? "Timed out before observing enough compound packets."
1134 : "Timed out before receiving a non-compound RTCP packet."); 1146 : "Timed out before receiving a non-compound RTCP packet.");
(...skipping 508 matching lines...) Expand 10 before | Expand all | Expand 10 after
1643 1655
1644 CreateCalls(Call::Config(), Call::Config()); 1656 CreateCalls(Call::Config(), Call::Config());
1645 1657
1646 test::DirectTransport sender_transport(sender_call_.get()); 1658 test::DirectTransport sender_transport(sender_call_.get());
1647 test::DirectTransport receiver_transport(receiver_call_.get()); 1659 test::DirectTransport receiver_transport(receiver_call_.get());
1648 sender_transport.SetReceiver(receiver_call_->Receiver()); 1660 sender_transport.SetReceiver(receiver_call_->Receiver());
1649 receiver_transport.SetReceiver(sender_call_->Receiver()); 1661 receiver_transport.SetReceiver(sender_call_->Receiver());
1650 1662
1651 CreateSendConfig(1, &sender_transport); 1663 CreateSendConfig(1, &sender_transport);
1652 CreateMatchingReceiveConfigs(&receiver_transport); 1664 CreateMatchingReceiveConfigs(&receiver_transport);
1653 send_config_.post_encode_callback = &post_encode_observer; 1665 video_send_config_.post_encode_callback = &post_encode_observer;
1654 receive_configs_[0].pre_decode_callback = &pre_decode_observer; 1666 video_receive_configs_[0].pre_decode_callback = &pre_decode_observer;
1655 1667
1656 CreateStreams(); 1668 CreateStreams();
1657 Start(); 1669 Start();
1658 1670
1659 rtc::scoped_ptr<test::FrameGenerator> frame_generator( 1671 rtc::scoped_ptr<test::FrameGenerator> frame_generator(
1660 test::FrameGenerator::CreateChromaGenerator( 1672 test::FrameGenerator::CreateChromaGenerator(
1661 encoder_config_.streams[0].width, encoder_config_.streams[0].height)); 1673 video_encoder_config_.streams[0].width,
1662 send_stream_->Input()->IncomingCapturedFrame(*frame_generator->NextFrame()); 1674 video_encoder_config_.streams[0].height));
1675 video_send_stream_->Input()->IncomingCapturedFrame(
1676 *frame_generator->NextFrame());
1663 1677
1664 EXPECT_TRUE(post_encode_observer.Wait()) 1678 EXPECT_TRUE(post_encode_observer.Wait())
1665 << "Timed out while waiting for send-side encoded-frame callback."; 1679 << "Timed out while waiting for send-side encoded-frame callback.";
1666 1680
1667 EXPECT_TRUE(pre_decode_observer.Wait()) 1681 EXPECT_TRUE(pre_decode_observer.Wait())
1668 << "Timed out while waiting for pre-decode encoded-frame callback."; 1682 << "Timed out while waiting for pre-decode encoded-frame callback.";
1669 1683
1670 post_encode_observer.ExpectEqualFrames(pre_decode_observer); 1684 post_encode_observer.ExpectEqualFrames(pre_decode_observer);
1671 1685
1672 Stop(); 1686 Stop();
(...skipping 132 matching lines...) Expand 10 before | Expand all | Expand 10 after
1805 stats.substreams.begin(); it != stats.substreams.end(); ++it) { 1819 stats.substreams.begin(); it != stats.substreams.end(); ++it) {
1806 const VideoSendStream::StreamStats& stream_stats = it->second; 1820 const VideoSendStream::StreamStats& stream_stats = it->second;
1807 send_stream_nack_packets += 1821 send_stream_nack_packets +=
1808 stream_stats.rtcp_packet_type_counts.nack_packets; 1822 stream_stats.rtcp_packet_type_counts.nack_packets;
1809 } 1823 }
1810 for (size_t i = 0; i < receive_streams_.size(); ++i) { 1824 for (size_t i = 0; i < receive_streams_.size(); ++i) {
1811 VideoReceiveStream::Stats stats = receive_streams_[i]->GetStats(); 1825 VideoReceiveStream::Stats stats = receive_streams_[i]->GetStats();
1812 receive_stream_nack_packets += 1826 receive_stream_nack_packets +=
1813 stats.rtcp_packet_type_counts.nack_packets; 1827 stats.rtcp_packet_type_counts.nack_packets;
1814 } 1828 }
1815 if (send_stream_nack_packets >= 1 && receive_stream_nack_packets >= 1) { 1829 if (send_stream_nack_packets >= 1 &&
1830 receive_stream_nack_packets >= 1) {
1816 // NACK packet sent on receive stream and received on sent stream. 1831 // NACK packet sent on receive stream and received on sent stream.
1817 if (MinMetricRunTimePassed()) 1832 if (MinMetricRunTimePassed())
1818 observation_complete_.Set(); 1833 observation_complete_.Set();
1819 } 1834 }
1820 } 1835 }
1821 1836
1822 bool MinMetricRunTimePassed() { 1837 bool MinMetricRunTimePassed() {
1823 int64_t now = Clock::GetRealTimeClock()->TimeInMilliseconds(); 1838 int64_t now = Clock::GetRealTimeClock()->TimeInMilliseconds();
1824 if (start_runtime_ms_ == -1) { 1839 if (start_runtime_ms_ == -1) {
1825 start_runtime_ms_ = now; 1840 start_runtime_ms_ = now;
1826 return false; 1841 return false;
1827 } 1842 }
1828 int64_t elapsed_sec = (now - start_runtime_ms_) / 1000; 1843 int64_t elapsed_sec = (now - start_runtime_ms_) / 1000;
1829 return elapsed_sec > metrics::kMinRunTimeInSeconds; 1844 return elapsed_sec > metrics::kMinRunTimeInSeconds;
1830 } 1845 }
1831 1846
1832 void ModifyConfigs(VideoSendStream::Config* send_config, 1847 void ModifyVideoConfigs(
1833 std::vector<VideoReceiveStream::Config>* receive_configs, 1848 VideoSendStream::Config* send_config,
1834 VideoEncoderConfig* encoder_config) override { 1849 std::vector<VideoReceiveStream::Config>* receive_configs,
1850 VideoEncoderConfig* encoder_config) override {
1835 send_config->rtp.nack.rtp_history_ms = kNackRtpHistoryMs; 1851 send_config->rtp.nack.rtp_history_ms = kNackRtpHistoryMs;
1836 (*receive_configs)[0].rtp.nack.rtp_history_ms = kNackRtpHistoryMs; 1852 (*receive_configs)[0].rtp.nack.rtp_history_ms = kNackRtpHistoryMs;
1837 } 1853 }
1838 1854
1839 void OnStreamsCreated( 1855 void OnVideoStreamsCreated(
1840 VideoSendStream* send_stream, 1856 VideoSendStream* send_stream,
1841 const std::vector<VideoReceiveStream*>& receive_streams) override { 1857 const std::vector<VideoReceiveStream*>& receive_streams) override {
1842 send_stream_ = send_stream; 1858 send_stream_ = send_stream;
1843 receive_streams_ = receive_streams; 1859 receive_streams_ = receive_streams;
1844 } 1860 }
1845 1861
1846 void PerformTest() override { 1862 void PerformTest() override {
1847 EXPECT_TRUE(Wait()) << "Timed out waiting for packet to be NACKed."; 1863 EXPECT_TRUE(Wait()) << "Timed out waiting for packet to be NACKed.";
1848 } 1864 }
1849 1865
(...skipping 50 matching lines...) Expand 10 before | Expand all | Expand 10 after
1900 bool MinMetricRunTimePassed() { 1916 bool MinMetricRunTimePassed() {
1901 int64_t now = Clock::GetRealTimeClock()->TimeInMilliseconds(); 1917 int64_t now = Clock::GetRealTimeClock()->TimeInMilliseconds();
1902 if (start_runtime_ms_ == -1) { 1918 if (start_runtime_ms_ == -1) {
1903 start_runtime_ms_ = now; 1919 start_runtime_ms_ = now;
1904 return false; 1920 return false;
1905 } 1921 }
1906 int64_t elapsed_sec = (now - start_runtime_ms_) / 1000; 1922 int64_t elapsed_sec = (now - start_runtime_ms_) / 1000;
1907 return elapsed_sec > metrics::kMinRunTimeInSeconds * 2; 1923 return elapsed_sec > metrics::kMinRunTimeInSeconds * 2;
1908 } 1924 }
1909 1925
1910 void ModifyConfigs(VideoSendStream::Config* send_config, 1926 void ModifyVideoConfigs(
1911 std::vector<VideoReceiveStream::Config>* receive_configs, 1927 VideoSendStream::Config* send_config,
1912 VideoEncoderConfig* encoder_config) override { 1928 std::vector<VideoReceiveStream::Config>* receive_configs,
1929 VideoEncoderConfig* encoder_config) override {
1913 // NACK 1930 // NACK
1914 send_config->rtp.nack.rtp_history_ms = kNackRtpHistoryMs; 1931 send_config->rtp.nack.rtp_history_ms = kNackRtpHistoryMs;
1915 (*receive_configs)[0].rtp.nack.rtp_history_ms = kNackRtpHistoryMs; 1932 (*receive_configs)[0].rtp.nack.rtp_history_ms = kNackRtpHistoryMs;
1916 // FEC 1933 // FEC
1917 if (use_red_) { 1934 if (use_red_) {
1918 send_config->rtp.fec.ulpfec_payload_type = kUlpfecPayloadType; 1935 send_config->rtp.fec.ulpfec_payload_type = kUlpfecPayloadType;
1919 send_config->rtp.fec.red_payload_type = kRedPayloadType; 1936 send_config->rtp.fec.red_payload_type = kRedPayloadType;
1920 (*receive_configs)[0].rtp.fec.red_payload_type = kRedPayloadType; 1937 (*receive_configs)[0].rtp.fec.red_payload_type = kRedPayloadType;
1921 (*receive_configs)[0].rtp.fec.ulpfec_payload_type = kUlpfecPayloadType; 1938 (*receive_configs)[0].rtp.fec.ulpfec_payload_type = kUlpfecPayloadType;
1922 } 1939 }
(...skipping 72 matching lines...) Expand 10 before | Expand all | Expand 10 after
1995 "WebRTC.Video.ReceivedPacketsLostInPercent")); 2012 "WebRTC.Video.ReceivedPacketsLostInPercent"));
1996 2013
1997 EXPECT_EQ(1, test::NumHistogramSamples(video_prefix + "InputWidthInPixels")); 2014 EXPECT_EQ(1, test::NumHistogramSamples(video_prefix + "InputWidthInPixels"));
1998 EXPECT_EQ(1, test::NumHistogramSamples(video_prefix + "InputHeightInPixels")); 2015 EXPECT_EQ(1, test::NumHistogramSamples(video_prefix + "InputHeightInPixels"));
1999 EXPECT_EQ(1, test::NumHistogramSamples(video_prefix + "SentWidthInPixels")); 2016 EXPECT_EQ(1, test::NumHistogramSamples(video_prefix + "SentWidthInPixels"));
2000 EXPECT_EQ(1, test::NumHistogramSamples(video_prefix + "SentHeightInPixels")); 2017 EXPECT_EQ(1, test::NumHistogramSamples(video_prefix + "SentHeightInPixels"));
2001 EXPECT_EQ(1, test::NumHistogramSamples("WebRTC.Video.ReceivedWidthInPixels")); 2018 EXPECT_EQ(1, test::NumHistogramSamples("WebRTC.Video.ReceivedWidthInPixels"));
2002 EXPECT_EQ(1, 2019 EXPECT_EQ(1,
2003 test::NumHistogramSamples("WebRTC.Video.ReceivedHeightInPixels")); 2020 test::NumHistogramSamples("WebRTC.Video.ReceivedHeightInPixels"));
2004 2021
2005 EXPECT_EQ(static_cast<int>(encoder_config_.streams[0].width), 2022 EXPECT_EQ(static_cast<int>(video_encoder_config_.streams[0].width),
2006 test::LastHistogramSample(video_prefix + "InputWidthInPixels")); 2023 test::LastHistogramSample(video_prefix + "InputWidthInPixels"));
2007 EXPECT_EQ(static_cast<int>(encoder_config_.streams[0].height), 2024 EXPECT_EQ(static_cast<int>(video_encoder_config_.streams[0].height),
2008 test::LastHistogramSample(video_prefix + "InputHeightInPixels")); 2025 test::LastHistogramSample(video_prefix + "InputHeightInPixels"));
2009 EXPECT_EQ(static_cast<int>(encoder_config_.streams[0].width), 2026 EXPECT_EQ(static_cast<int>(video_encoder_config_.streams[0].width),
2010 test::LastHistogramSample(video_prefix + "SentWidthInPixels")); 2027 test::LastHistogramSample(video_prefix + "SentWidthInPixels"));
2011 EXPECT_EQ(static_cast<int>(encoder_config_.streams[0].height), 2028 EXPECT_EQ(static_cast<int>(video_encoder_config_.streams[0].height),
2012 test::LastHistogramSample(video_prefix + "SentHeightInPixels")); 2029 test::LastHistogramSample(video_prefix + "SentHeightInPixels"));
2013 EXPECT_EQ(static_cast<int>(encoder_config_.streams[0].width), 2030 EXPECT_EQ(static_cast<int>(video_encoder_config_.streams[0].width),
2014 test::LastHistogramSample("WebRTC.Video.ReceivedWidthInPixels")); 2031 test::LastHistogramSample("WebRTC.Video.ReceivedWidthInPixels"));
2015 EXPECT_EQ(static_cast<int>(encoder_config_.streams[0].height), 2032 EXPECT_EQ(static_cast<int>(video_encoder_config_.streams[0].height),
2016 test::LastHistogramSample("WebRTC.Video.ReceivedHeightInPixels")); 2033 test::LastHistogramSample("WebRTC.Video.ReceivedHeightInPixels"));
2017 2034
2018 EXPECT_EQ(1, 2035 EXPECT_EQ(1,
2019 test::NumHistogramSamples(video_prefix + "InputFramesPerSecond")); 2036 test::NumHistogramSamples(video_prefix + "InputFramesPerSecond"));
2020 EXPECT_EQ(1, test::NumHistogramSamples(video_prefix + "SentFramesPerSecond")); 2037 EXPECT_EQ(1, test::NumHistogramSamples(video_prefix + "SentFramesPerSecond"));
2021 EXPECT_EQ(1, test::NumHistogramSamples( 2038 EXPECT_EQ(1, test::NumHistogramSamples(
2022 "WebRTC.Video.DecodedFramesPerSecond")); 2039 "WebRTC.Video.DecodedFramesPerSecond"));
2023 EXPECT_EQ(1, test::NumHistogramSamples("WebRTC.Video.RenderFramesPerSecond")); 2040 EXPECT_EQ(1, test::NumHistogramSamples("WebRTC.Video.RenderFramesPerSecond"));
2024 2041
2025 EXPECT_EQ(1, test::NumHistogramSamples("WebRTC.Video.OnewayDelayInMs")); 2042 EXPECT_EQ(1, test::NumHistogramSamples("WebRTC.Video.OnewayDelayInMs"));
(...skipping 119 matching lines...) Expand 10 before | Expand all | Expand 10 after
2145 EXPECT_GT(sent_rtcp_dlrr_, 0); 2162 EXPECT_GT(sent_rtcp_dlrr_, 0);
2146 } else { 2163 } else {
2147 EXPECT_EQ(0, sent_rtcp_rrtr_); 2164 EXPECT_EQ(0, sent_rtcp_rrtr_);
2148 EXPECT_EQ(0, sent_rtcp_dlrr_); 2165 EXPECT_EQ(0, sent_rtcp_dlrr_);
2149 } 2166 }
2150 observation_complete_.Set(); 2167 observation_complete_.Set();
2151 } 2168 }
2152 return SEND_PACKET; 2169 return SEND_PACKET;
2153 } 2170 }
2154 2171
2155 void ModifyConfigs(VideoSendStream::Config* send_config, 2172 void ModifyVideoConfigs(
2156 std::vector<VideoReceiveStream::Config>* receive_configs, 2173 VideoSendStream::Config* send_config,
2157 VideoEncoderConfig* encoder_config) override { 2174 std::vector<VideoReceiveStream::Config>* receive_configs,
2175 VideoEncoderConfig* encoder_config) override {
2158 (*receive_configs)[0].rtp.rtcp_mode = RtcpMode::kReducedSize; 2176 (*receive_configs)[0].rtp.rtcp_mode = RtcpMode::kReducedSize;
2159 (*receive_configs)[0].rtp.rtcp_xr.receiver_reference_time_report = 2177 (*receive_configs)[0].rtp.rtcp_xr.receiver_reference_time_report =
2160 enable_rrtr_; 2178 enable_rrtr_;
2161 } 2179 }
2162 2180
2163 void PerformTest() override { 2181 void PerformTest() override {
2164 EXPECT_TRUE(Wait()) 2182 EXPECT_TRUE(Wait())
2165 << "Timed out while waiting for RTCP SR/RR packets to be sent."; 2183 << "Timed out while waiting for RTCP SR/RR packets to be sent.";
2166 } 2184 }
2167 2185
(...skipping 46 matching lines...) Expand 10 before | Expand all | Expand 10 after
2214 } 2232 }
2215 2233
2216 if (ssrcs_to_observe_ == 0) 2234 if (ssrcs_to_observe_ == 0)
2217 observation_complete_.Set(); 2235 observation_complete_.Set();
2218 2236
2219 return SEND_PACKET; 2237 return SEND_PACKET;
2220 } 2238 }
2221 2239
2222 size_t GetNumStreams() const override { return num_ssrcs_; } 2240 size_t GetNumStreams() const override { return num_ssrcs_; }
2223 2241
2224 void ModifyConfigs(VideoSendStream::Config* send_config, 2242 void ModifyVideoConfigs(
2225 std::vector<VideoReceiveStream::Config>* receive_configs, 2243 VideoSendStream::Config* send_config,
2226 VideoEncoderConfig* encoder_config) override { 2244 std::vector<VideoReceiveStream::Config>* receive_configs,
2245 VideoEncoderConfig* encoder_config) override {
2227 if (num_ssrcs_ > 1) { 2246 if (num_ssrcs_ > 1) {
2228 // Set low simulcast bitrates to not have to wait for bandwidth ramp-up. 2247 // Set low simulcast bitrates to not have to wait for bandwidth ramp-up.
2229 for (size_t i = 0; i < encoder_config->streams.size(); ++i) { 2248 for (size_t i = 0; i < encoder_config->streams.size(); ++i) {
2230 encoder_config->streams[i].min_bitrate_bps = 10000; 2249 encoder_config->streams[i].min_bitrate_bps = 10000;
2231 encoder_config->streams[i].target_bitrate_bps = 15000; 2250 encoder_config->streams[i].target_bitrate_bps = 15000;
2232 encoder_config->streams[i].max_bitrate_bps = 20000; 2251 encoder_config->streams[i].max_bitrate_bps = 20000;
2233 } 2252 }
2234 } 2253 }
2235 2254
2236 encoder_config_all_streams_ = *encoder_config; 2255 video_encoder_config_all_streams_ = *encoder_config;
2237 if (send_single_ssrc_first_) 2256 if (send_single_ssrc_first_)
2238 encoder_config->streams.resize(1); 2257 encoder_config->streams.resize(1);
2239 } 2258 }
2240 2259
2241 void OnStreamsCreated( 2260 void OnVideoStreamsCreated(
2242 VideoSendStream* send_stream, 2261 VideoSendStream* send_stream,
2243 const std::vector<VideoReceiveStream*>& receive_streams) override { 2262 const std::vector<VideoReceiveStream*>& receive_streams) override {
2244 send_stream_ = send_stream; 2263 send_stream_ = send_stream;
2245 } 2264 }
2246 2265
2247 void PerformTest() override { 2266 void PerformTest() override {
2248 EXPECT_TRUE(Wait()) << "Timed out while waiting for " 2267 EXPECT_TRUE(Wait()) << "Timed out while waiting for "
2249 << (send_single_ssrc_first_ ? "first SSRC." 2268 << (send_single_ssrc_first_ ? "first SSRC."
2250 : "SSRCs."); 2269 : "SSRCs.");
2251 2270
2252 if (send_single_ssrc_first_) { 2271 if (send_single_ssrc_first_) {
2253 // Set full simulcast and continue with the rest of the SSRCs. 2272 // Set full simulcast and continue with the rest of the SSRCs.
2254 send_stream_->ReconfigureVideoEncoder(encoder_config_all_streams_); 2273 send_stream_->ReconfigureVideoEncoder(
2274 video_encoder_config_all_streams_);
2255 EXPECT_TRUE(Wait()) << "Timed out while waiting on additional SSRCs."; 2275 EXPECT_TRUE(Wait()) << "Timed out while waiting on additional SSRCs.";
2256 } 2276 }
2257 } 2277 }
2258 2278
2259 private: 2279 private:
2260 std::map<uint32_t, bool> valid_ssrcs_; 2280 std::map<uint32_t, bool> valid_ssrcs_;
2261 std::map<uint32_t, bool> is_observed_; 2281 std::map<uint32_t, bool> is_observed_;
2262 2282
2263 const size_t num_ssrcs_; 2283 const size_t num_ssrcs_;
2264 const bool send_single_ssrc_first_; 2284 const bool send_single_ssrc_first_;
2265 2285
2266 size_t ssrcs_to_observe_; 2286 size_t ssrcs_to_observe_;
2267 bool expect_single_ssrc_; 2287 bool expect_single_ssrc_;
2268 2288
2269 VideoSendStream* send_stream_; 2289 VideoSendStream* send_stream_;
2270 VideoEncoderConfig encoder_config_all_streams_; 2290 VideoEncoderConfig video_encoder_config_all_streams_;
2271 } test(kSendSsrcs, num_ssrcs, send_single_ssrc_first); 2291 } test(kSendSsrcs, num_ssrcs, send_single_ssrc_first);
2272 2292
2273 RunBaseTest(&test, FakeNetworkPipe::Config()); 2293 RunBaseTest(&test, FakeNetworkPipe::Config());
2274 } 2294 }
2275 2295
2276 TEST_F(EndToEndTest, ReportsSetEncoderRates) { 2296 TEST_F(EndToEndTest, ReportsSetEncoderRates) {
2277 class EncoderRateStatsTest : public test::EndToEndTest, 2297 class EncoderRateStatsTest : public test::EndToEndTest,
2278 public test::FakeEncoder { 2298 public test::FakeEncoder {
2279 public: 2299 public:
2280 EncoderRateStatsTest() 2300 EncoderRateStatsTest()
2281 : EndToEndTest(kDefaultTimeoutMs), 2301 : EndToEndTest(kDefaultTimeoutMs),
2282 FakeEncoder(Clock::GetRealTimeClock()), 2302 FakeEncoder(Clock::GetRealTimeClock()),
2283 send_stream_(nullptr), 2303 send_stream_(nullptr),
2284 bitrate_kbps_(0) {} 2304 bitrate_kbps_(0) {}
2285 2305
2286 void OnStreamsCreated( 2306 void OnVideoStreamsCreated(
2287 VideoSendStream* send_stream, 2307 VideoSendStream* send_stream,
2288 const std::vector<VideoReceiveStream*>& receive_streams) override { 2308 const std::vector<VideoReceiveStream*>& receive_streams) override {
2289 send_stream_ = send_stream; 2309 send_stream_ = send_stream;
2290 } 2310 }
2291 2311
2292 void ModifyConfigs(VideoSendStream::Config* send_config, 2312 void ModifyVideoConfigs(
2293 std::vector<VideoReceiveStream::Config>* receive_configs, 2313 VideoSendStream::Config* send_config,
2294 VideoEncoderConfig* encoder_config) override { 2314 std::vector<VideoReceiveStream::Config>* receive_configs,
2315 VideoEncoderConfig* encoder_config) override {
2295 send_config->encoder_settings.encoder = this; 2316 send_config->encoder_settings.encoder = this;
2296 } 2317 }
2297 2318
2298 int32_t SetRates(uint32_t new_target_bitrate, uint32_t framerate) override { 2319 int32_t SetRates(uint32_t new_target_bitrate, uint32_t framerate) override {
2299 // Make sure not to trigger on any default zero bitrates. 2320 // Make sure not to trigger on any default zero bitrates.
2300 if (new_target_bitrate == 0) 2321 if (new_target_bitrate == 0)
2301 return 0; 2322 return 0;
2302 rtc::CritScope lock(&crit_); 2323 rtc::CritScope lock(&crit_);
2303 bitrate_kbps_ = new_target_bitrate; 2324 bitrate_kbps_ = new_target_bitrate;
2304 observation_complete_.Set(); 2325 observation_complete_.Set();
(...skipping 204 matching lines...) Expand 10 before | Expand all | Expand 10 after
2509 } 2530 }
2510 return true; 2531 return true;
2511 } 2532 }
2512 2533
2513 Call::Config GetSenderCallConfig() override { 2534 Call::Config GetSenderCallConfig() override {
2514 Call::Config config = EndToEndTest::GetSenderCallConfig(); 2535 Call::Config config = EndToEndTest::GetSenderCallConfig();
2515 config.bitrate_config.start_bitrate_bps = kStartBitrateBps; 2536 config.bitrate_config.start_bitrate_bps = kStartBitrateBps;
2516 return config; 2537 return config;
2517 } 2538 }
2518 2539
2519 void ModifyConfigs(VideoSendStream::Config* send_config, 2540 void ModifyVideoConfigs(
2520 std::vector<VideoReceiveStream::Config>* receive_configs, 2541 VideoSendStream::Config* send_config,
2521 VideoEncoderConfig* encoder_config) override { 2542 std::vector<VideoReceiveStream::Config>* receive_configs,
2543 VideoEncoderConfig* encoder_config) override {
2522 send_config->pre_encode_callback = this; // Used to inject delay. 2544 send_config->pre_encode_callback = this; // Used to inject delay.
2523 expected_cname_ = send_config->rtp.c_name = "SomeCName"; 2545 expected_cname_ = send_config->rtp.c_name = "SomeCName";
2524 2546
2525 const std::vector<uint32_t>& ssrcs = send_config->rtp.ssrcs; 2547 const std::vector<uint32_t>& ssrcs = send_config->rtp.ssrcs;
2526 for (size_t i = 0; i < ssrcs.size(); ++i) { 2548 for (size_t i = 0; i < ssrcs.size(); ++i) {
2527 expected_send_ssrcs_.insert(ssrcs[i]); 2549 expected_send_ssrcs_.insert(ssrcs[i]);
2528 expected_receive_ssrcs_.push_back( 2550 expected_receive_ssrcs_.push_back(
2529 (*receive_configs)[i].rtp.remote_ssrc); 2551 (*receive_configs)[i].rtp.remote_ssrc);
2530 (*receive_configs)[i].render_delay_ms = kExpectedRenderDelayMs; 2552 (*receive_configs)[i].render_delay_ms = kExpectedRenderDelayMs;
2531 } 2553 }
2532 } 2554 }
2533 2555
2534 size_t GetNumStreams() const override { return kNumSsrcs; } 2556 size_t GetNumStreams() const override { return kNumSsrcs; }
2535 2557
2536 void OnStreamsCreated( 2558 void OnVideoStreamsCreated(
2537 VideoSendStream* send_stream, 2559 VideoSendStream* send_stream,
2538 const std::vector<VideoReceiveStream*>& receive_streams) override { 2560 const std::vector<VideoReceiveStream*>& receive_streams) override {
2539 send_stream_ = send_stream; 2561 send_stream_ = send_stream;
2540 receive_streams_ = receive_streams; 2562 receive_streams_ = receive_streams;
2541 } 2563 }
2542 2564
2543 void PerformTest() override { 2565 void PerformTest() override {
2544 Clock* clock = Clock::GetRealTimeClock(); 2566 Clock* clock = Clock::GetRealTimeClock();
2545 int64_t now = clock->TimeInMilliseconds(); 2567 int64_t now = clock->TimeInMilliseconds();
2546 int64_t stop_time = now + test::CallTest::kLongTimeoutMs; 2568 int64_t stop_time = now + test::CallTest::kLongTimeoutMs;
(...skipping 64 matching lines...) Expand 10 before | Expand all | Expand 10 after
2611 TEST_F(EndToEndTest, TestReceivedRtpPacketStats) { 2633 TEST_F(EndToEndTest, TestReceivedRtpPacketStats) {
2612 static const size_t kNumRtpPacketsToSend = 5; 2634 static const size_t kNumRtpPacketsToSend = 5;
2613 class ReceivedRtpStatsObserver : public test::EndToEndTest { 2635 class ReceivedRtpStatsObserver : public test::EndToEndTest {
2614 public: 2636 public:
2615 ReceivedRtpStatsObserver() 2637 ReceivedRtpStatsObserver()
2616 : EndToEndTest(kDefaultTimeoutMs), 2638 : EndToEndTest(kDefaultTimeoutMs),
2617 receive_stream_(nullptr), 2639 receive_stream_(nullptr),
2618 sent_rtp_(0) {} 2640 sent_rtp_(0) {}
2619 2641
2620 private: 2642 private:
2621 void OnStreamsCreated( 2643 void OnVideoStreamsCreated(
2622 VideoSendStream* send_stream, 2644 VideoSendStream* send_stream,
2623 const std::vector<VideoReceiveStream*>& receive_streams) override { 2645 const std::vector<VideoReceiveStream*>& receive_streams) override {
2624 receive_stream_ = receive_streams[0]; 2646 receive_stream_ = receive_streams[0];
2625 } 2647 }
2626 2648
2627 Action OnSendRtp(const uint8_t* packet, size_t length) override { 2649 Action OnSendRtp(const uint8_t* packet, size_t length) override {
2628 if (sent_rtp_ >= kNumRtpPacketsToSend) { 2650 if (sent_rtp_ >= kNumRtpPacketsToSend) {
2629 VideoReceiveStream::Stats stats = receive_stream_->GetStats(); 2651 VideoReceiveStream::Stats stats = receive_stream_->GetStats();
2630 if (kNumRtpPacketsToSend == stats.rtp_stats.transmitted.packets) { 2652 if (kNumRtpPacketsToSend == stats.rtp_stats.transmitted.packets) {
2631 observation_complete_.Set(); 2653 observation_complete_.Set();
(...skipping 55 matching lines...) Expand 10 before | Expand all | Expand 10 after
2687 observed_redundant_retransmission_[header.ssrc] = true; 2709 observed_redundant_retransmission_[header.ssrc] = true;
2688 if (--ssrcs_to_observe_ == 0) 2710 if (--ssrcs_to_observe_ == 0)
2689 observation_complete_.Set(); 2711 observation_complete_.Set();
2690 } 2712 }
2691 2713
2692 return SEND_PACKET; 2714 return SEND_PACKET;
2693 } 2715 }
2694 2716
2695 size_t GetNumStreams() const override { return kNumSsrcs; } 2717 size_t GetNumStreams() const override { return kNumSsrcs; }
2696 2718
2697 void ModifyConfigs(VideoSendStream::Config* send_config, 2719 void ModifyVideoConfigs(
2698 std::vector<VideoReceiveStream::Config>* receive_configs, 2720 VideoSendStream::Config* send_config,
2699 VideoEncoderConfig* encoder_config) override { 2721 std::vector<VideoReceiveStream::Config>* receive_configs,
2722 VideoEncoderConfig* encoder_config) override {
2700 // Set low simulcast bitrates to not have to wait for bandwidth ramp-up. 2723 // Set low simulcast bitrates to not have to wait for bandwidth ramp-up.
2701 for (size_t i = 0; i < encoder_config->streams.size(); ++i) { 2724 for (size_t i = 0; i < encoder_config->streams.size(); ++i) {
2702 encoder_config->streams[i].min_bitrate_bps = 10000; 2725 encoder_config->streams[i].min_bitrate_bps = 10000;
2703 encoder_config->streams[i].target_bitrate_bps = 15000; 2726 encoder_config->streams[i].target_bitrate_bps = 15000;
2704 encoder_config->streams[i].max_bitrate_bps = 20000; 2727 encoder_config->streams[i].max_bitrate_bps = 20000;
2705 } 2728 }
2706 2729
2707 send_config->rtp.rtx.payload_type = kSendRtxPayloadType; 2730 send_config->rtp.rtx.payload_type = kSendRtxPayloadType;
2708 2731
2709 for (size_t i = 0; i < kNumSsrcs; ++i) 2732 for (size_t i = 0; i < kNumSsrcs; ++i)
(...skipping 117 matching lines...) Expand 10 before | Expand all | Expand 10 after
2827 test::PacketTransport receive_transport(nullptr, &observer, 2850 test::PacketTransport receive_transport(nullptr, &observer,
2828 test::PacketTransport::kReceiver, 2851 test::PacketTransport::kReceiver,
2829 FakeNetworkPipe::Config()); 2852 FakeNetworkPipe::Config());
2830 send_transport.SetReceiver(receiver_call_->Receiver()); 2853 send_transport.SetReceiver(receiver_call_->Receiver());
2831 receive_transport.SetReceiver(sender_call_->Receiver()); 2854 receive_transport.SetReceiver(sender_call_->Receiver());
2832 2855
2833 CreateSendConfig(kNumSsrcs, &send_transport); 2856 CreateSendConfig(kNumSsrcs, &send_transport);
2834 2857
2835 if (use_rtx) { 2858 if (use_rtx) {
2836 for (size_t i = 0; i < kNumSsrcs; ++i) { 2859 for (size_t i = 0; i < kNumSsrcs; ++i) {
2837 send_config_.rtp.rtx.ssrcs.push_back(kSendRtxSsrcs[i]); 2860 video_send_config_.rtp.rtx.ssrcs.push_back(kSendRtxSsrcs[i]);
2838 } 2861 }
2839 send_config_.rtp.rtx.payload_type = kSendRtxPayloadType; 2862 video_send_config_.rtp.rtx.payload_type = kSendRtxPayloadType;
2840 } 2863 }
2841 2864
2842 // Lower bitrates so that all streams send initially. 2865 // Lower bitrates so that all streams send initially.
2843 for (size_t i = 0; i < encoder_config_.streams.size(); ++i) { 2866 for (size_t i = 0; i < video_encoder_config_.streams.size(); ++i) {
2844 encoder_config_.streams[i].min_bitrate_bps = 10000; 2867 video_encoder_config_.streams[i].min_bitrate_bps = 10000;
2845 encoder_config_.streams[i].target_bitrate_bps = 15000; 2868 video_encoder_config_.streams[i].target_bitrate_bps = 15000;
2846 encoder_config_.streams[i].max_bitrate_bps = 20000; 2869 video_encoder_config_.streams[i].max_bitrate_bps = 20000;
2847 } 2870 }
2848 2871
2849 // Use the same total bitrates when sending a single stream to avoid lowering 2872 // Use the same total bitrates when sending a single stream to avoid lowering
2850 // the bitrate estimate and requiring a subsequent rampup. 2873 // the bitrate estimate and requiring a subsequent rampup.
2851 VideoEncoderConfig one_stream = encoder_config_; 2874 VideoEncoderConfig one_stream = video_encoder_config_;
2852 one_stream.streams.resize(1); 2875 one_stream.streams.resize(1);
2853 for (size_t i = 1; i < encoder_config_.streams.size(); ++i) { 2876 for (size_t i = 1; i < video_encoder_config_.streams.size(); ++i) {
2854 one_stream.streams.front().min_bitrate_bps += 2877 one_stream.streams.front().min_bitrate_bps +=
2855 encoder_config_.streams[i].min_bitrate_bps; 2878 video_encoder_config_.streams[i].min_bitrate_bps;
2856 one_stream.streams.front().target_bitrate_bps += 2879 one_stream.streams.front().target_bitrate_bps +=
2857 encoder_config_.streams[i].target_bitrate_bps; 2880 video_encoder_config_.streams[i].target_bitrate_bps;
2858 one_stream.streams.front().max_bitrate_bps += 2881 one_stream.streams.front().max_bitrate_bps +=
2859 encoder_config_.streams[i].max_bitrate_bps; 2882 video_encoder_config_.streams[i].max_bitrate_bps;
2860 } 2883 }
2861 2884
2862 CreateMatchingReceiveConfigs(&receive_transport); 2885 CreateMatchingReceiveConfigs(&receive_transport);
2863 2886
2864 CreateStreams(); 2887 CreateStreams();
2865 CreateFrameGeneratorCapturer(); 2888 CreateFrameGeneratorCapturer();
2866 2889
2867 Start(); 2890 Start();
2868 EXPECT_TRUE(observer.Wait()) 2891 EXPECT_TRUE(observer.Wait())
2869 << "Timed out waiting for all SSRCs to send packets."; 2892 << "Timed out waiting for all SSRCs to send packets.";
2870 2893
2871 // Test stream resetting more than once to make sure that the state doesn't 2894 // Test stream resetting more than once to make sure that the state doesn't
2872 // get set once (this could be due to using std::map::insert for instance). 2895 // get set once (this could be due to using std::map::insert for instance).
2873 for (size_t i = 0; i < 3; ++i) { 2896 for (size_t i = 0; i < 3; ++i) {
2874 frame_generator_capturer_->Stop(); 2897 frame_generator_capturer_->Stop();
2875 sender_call_->DestroyVideoSendStream(send_stream_); 2898 sender_call_->DestroyVideoSendStream(video_send_stream_);
2876 2899
2877 // Re-create VideoSendStream with only one stream. 2900 // Re-create VideoSendStream with only one stream.
2878 send_stream_ = 2901 video_send_stream_ =
2879 sender_call_->CreateVideoSendStream(send_config_, one_stream); 2902 sender_call_->CreateVideoSendStream(video_send_config_, one_stream);
2880 send_stream_->Start(); 2903 video_send_stream_->Start();
2881 CreateFrameGeneratorCapturer(); 2904 CreateFrameGeneratorCapturer();
2882 frame_generator_capturer_->Start(); 2905 frame_generator_capturer_->Start();
2883 2906
2884 observer.ResetExpectedSsrcs(1); 2907 observer.ResetExpectedSsrcs(1);
2885 EXPECT_TRUE(observer.Wait()) << "Timed out waiting for single RTP packet."; 2908 EXPECT_TRUE(observer.Wait()) << "Timed out waiting for single RTP packet.";
2886 2909
2887 // Reconfigure back to use all streams. 2910 // Reconfigure back to use all streams.
2888 send_stream_->ReconfigureVideoEncoder(encoder_config_); 2911 video_send_stream_->ReconfigureVideoEncoder(video_encoder_config_);
2889 observer.ResetExpectedSsrcs(kNumSsrcs); 2912 observer.ResetExpectedSsrcs(kNumSsrcs);
2890 EXPECT_TRUE(observer.Wait()) 2913 EXPECT_TRUE(observer.Wait())
2891 << "Timed out waiting for all SSRCs to send packets."; 2914 << "Timed out waiting for all SSRCs to send packets.";
2892 2915
2893 // Reconfigure down to one stream. 2916 // Reconfigure down to one stream.
2894 send_stream_->ReconfigureVideoEncoder(one_stream); 2917 video_send_stream_->ReconfigureVideoEncoder(one_stream);
2895 observer.ResetExpectedSsrcs(1); 2918 observer.ResetExpectedSsrcs(1);
2896 EXPECT_TRUE(observer.Wait()) << "Timed out waiting for single RTP packet."; 2919 EXPECT_TRUE(observer.Wait()) << "Timed out waiting for single RTP packet.";
2897 2920
2898 // Reconfigure back to use all streams. 2921 // Reconfigure back to use all streams.
2899 send_stream_->ReconfigureVideoEncoder(encoder_config_); 2922 video_send_stream_->ReconfigureVideoEncoder(video_encoder_config_);
2900 observer.ResetExpectedSsrcs(kNumSsrcs); 2923 observer.ResetExpectedSsrcs(kNumSsrcs);
2901 EXPECT_TRUE(observer.Wait()) 2924 EXPECT_TRUE(observer.Wait())
2902 << "Timed out waiting for all SSRCs to send packets."; 2925 << "Timed out waiting for all SSRCs to send packets.";
2903 } 2926 }
2904 2927
2905 send_transport.StopSending(); 2928 send_transport.StopSending();
2906 receive_transport.StopSending(); 2929 receive_transport.StopSending();
2907 2930
2908 Stop(); 2931 Stop();
2909 DestroyStreams(); 2932 DestroyStreams();
(...skipping 56 matching lines...) Expand 10 before | Expand all | Expand 10 after
2966 ++receiver_rtcp_; 2989 ++receiver_rtcp_;
2967 packet_event_.Set(); 2990 packet_event_.Set();
2968 return SEND_PACKET; 2991 return SEND_PACKET;
2969 } 2992 }
2970 2993
2971 void OnCallsCreated(Call* sender_call, Call* receiver_call) override { 2994 void OnCallsCreated(Call* sender_call, Call* receiver_call) override {
2972 sender_call_ = sender_call; 2995 sender_call_ = sender_call;
2973 receiver_call_ = receiver_call; 2996 receiver_call_ = receiver_call;
2974 } 2997 }
2975 2998
2976 void ModifyConfigs(VideoSendStream::Config* send_config, 2999 void ModifyVideoConfigs(
2977 std::vector<VideoReceiveStream::Config>* receive_configs, 3000 VideoSendStream::Config* send_config,
2978 VideoEncoderConfig* encoder_config) override { 3001 std::vector<VideoReceiveStream::Config>* receive_configs,
3002 VideoEncoderConfig* encoder_config) override {
2979 send_config->encoder_settings.encoder = this; 3003 send_config->encoder_settings.encoder = this;
2980 } 3004 }
2981 3005
2982 void PerformTest() override { 3006 void PerformTest() override {
2983 EXPECT_TRUE(encoded_frames_.Wait(kDefaultTimeoutMs)) 3007 EXPECT_TRUE(encoded_frames_.Wait(kDefaultTimeoutMs))
2984 << "No frames received by the encoder."; 3008 << "No frames received by the encoder.";
2985 // Wait for packets from both sender/receiver. 3009 // Wait for packets from both sender/receiver.
2986 WaitForPacketsOrSilence(false, false); 3010 WaitForPacketsOrSilence(false, false);
2987 3011
2988 // Sender-side network down. 3012 // Sender-side network down.
(...skipping 153 matching lines...) Expand 10 before | Expand all | Expand 10 after
3142 input_image, codec_specific_info, frame_types); 3166 input_image, codec_specific_info, frame_types);
3143 } 3167 }
3144 }; 3168 };
3145 3169
3146 CreateSenderCall(Call::Config()); 3170 CreateSenderCall(Call::Config());
3147 sender_call_->SignalNetworkState(kNetworkDown); 3171 sender_call_->SignalNetworkState(kNetworkDown);
3148 3172
3149 UnusedTransport transport; 3173 UnusedTransport transport;
3150 CreateSendConfig(1, &transport); 3174 CreateSendConfig(1, &transport);
3151 UnusedEncoder unused_encoder; 3175 UnusedEncoder unused_encoder;
3152 send_config_.encoder_settings.encoder = &unused_encoder; 3176 video_send_config_.encoder_settings.encoder = &unused_encoder;
3153 CreateStreams(); 3177 CreateStreams();
3154 CreateFrameGeneratorCapturer(); 3178 CreateFrameGeneratorCapturer();
3155 3179
3156 Start(); 3180 Start();
3157 SleepMs(kSilenceTimeoutMs); 3181 SleepMs(kSilenceTimeoutMs);
3158 Stop(); 3182 Stop();
3159 3183
3160 DestroyStreams(); 3184 DestroyStreams();
3161 } 3185 }
3162 3186
(...skipping 57 matching lines...) Expand 10 before | Expand all | Expand 10 after
3220 EXPECT_TRUE(default_receive_config.rtp.rtx.empty()) 3244 EXPECT_TRUE(default_receive_config.rtp.rtx.empty())
3221 << "Enabling RTX requires rtpmap: rtx negotiation."; 3245 << "Enabling RTX requires rtpmap: rtx negotiation.";
3222 EXPECT_TRUE(default_receive_config.rtp.extensions.empty()) 3246 EXPECT_TRUE(default_receive_config.rtp.extensions.empty())
3223 << "Enabling RTP extensions require negotiation."; 3247 << "Enabling RTP extensions require negotiation.";
3224 3248
3225 VerifyEmptyNackConfig(default_receive_config.rtp.nack); 3249 VerifyEmptyNackConfig(default_receive_config.rtp.nack);
3226 VerifyEmptyFecConfig(default_receive_config.rtp.fec); 3250 VerifyEmptyFecConfig(default_receive_config.rtp.fec);
3227 } 3251 }
3228 3252
3229 } // namespace webrtc 3253 } // namespace webrtc
OLDNEW
« no previous file with comments | « webrtc/test/call_test.cc ('k') | webrtc/video/rampup_tests.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698