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

Side by Side Diff: webrtc/media/engine/webrtcvideoengine2_unittest.cc

Issue 2630333002: Drop frames until specified bitrate is achieved. (Closed)
Patch Set: Turn off quality scaling for screensharing in tests 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
OLDNEW
1 /* 1 /*
2 * Copyright (c) 2004 The WebRTC project authors. All Rights Reserved. 2 * Copyright (c) 2004 The WebRTC project authors. All Rights Reserved.
3 * 3 *
4 * Use of this source code is governed by a BSD-style license 4 * Use of this source code is governed by a BSD-style license
5 * that can be found in the LICENSE file in the root of the source 5 * that can be found in the LICENSE file in the root of the source
6 * tree. An additional intellectual property rights grant can be found 6 * tree. An additional intellectual property rights grant can be found
7 * in the file PATENTS. All contributing project authors may 7 * in the file PATENTS. All contributing project authors may
8 * be found in the AUTHORS file in the root of the source tree. 8 * be found in the AUTHORS file in the root of the source tree.
9 */ 9 */
10 10
(...skipping 84 matching lines...) Expand 10 before | Expand all | Expand 10 after
95 it = rtx_types.find(config.encoder_settings.payload_type); 95 it = rtx_types.find(config.encoder_settings.payload_type);
96 EXPECT_TRUE(it != rtx_types.end() && 96 EXPECT_TRUE(it != rtx_types.end() &&
97 it->second == config.rtp.rtx.payload_type); 97 it->second == config.rtp.rtx.payload_type);
98 98
99 if (config.rtp.ulpfec.red_rtx_payload_type != -1) { 99 if (config.rtp.ulpfec.red_rtx_payload_type != -1) {
100 it = rtx_types.find(config.rtp.ulpfec.red_payload_type); 100 it = rtx_types.find(config.rtp.ulpfec.red_payload_type);
101 EXPECT_TRUE(it != rtx_types.end() && 101 EXPECT_TRUE(it != rtx_types.end() &&
102 it->second == config.rtp.ulpfec.red_rtx_payload_type); 102 it->second == config.rtp.ulpfec.red_rtx_payload_type);
103 } 103 }
104 } 104 }
105
106 cricket::MediaConfig GetMediaConfig() {
107 cricket::MediaConfig media_config;
108 media_config.video.enable_cpu_overuse_detection = false;
109 return media_config;
110 }
105 } // namespace 111 } // namespace
106 112
107 namespace cricket { 113 namespace cricket {
108 class WebRtcVideoEngine2Test : public ::testing::Test { 114 class WebRtcVideoEngine2Test : public ::testing::Test {
109 public: 115 public:
110 WebRtcVideoEngine2Test() : WebRtcVideoEngine2Test("") {} 116 WebRtcVideoEngine2Test() : WebRtcVideoEngine2Test("") {}
111 explicit WebRtcVideoEngine2Test(const char* field_trials) 117 explicit WebRtcVideoEngine2Test(const char* field_trials)
112 : override_field_trials_(field_trials), 118 : override_field_trials_(field_trials),
113 call_(webrtc::Call::Create(webrtc::Call::Config(&event_log_))), 119 call_(webrtc::Call::Create(webrtc::Call::Config(&event_log_))),
114 engine_() { 120 engine_() {
(...skipping 208 matching lines...) Expand 10 before | Expand all | Expand 10 after
323 329
324 // Verify removing header extension turns on applying rotation. 330 // Verify removing header extension turns on applying rotation.
325 parameters.extensions.clear(); 331 parameters.extensions.clear();
326 EXPECT_TRUE(channel->SetSendParameters(parameters)); 332 EXPECT_TRUE(channel->SetSendParameters(parameters));
327 EXPECT_TRUE(capturer.apply_rotation()); 333 EXPECT_TRUE(capturer.apply_rotation());
328 } 334 }
329 335
330 TEST_F(WebRtcVideoEngine2Test, SetSendFailsBeforeSettingCodecs) { 336 TEST_F(WebRtcVideoEngine2Test, SetSendFailsBeforeSettingCodecs) {
331 engine_.Init(); 337 engine_.Init();
332 std::unique_ptr<VideoMediaChannel> channel( 338 std::unique_ptr<VideoMediaChannel> channel(
333 engine_.CreateChannel(call_.get(), MediaConfig(), VideoOptions())); 339 engine_.CreateChannel(call_.get(), GetMediaConfig(), VideoOptions()));
334 340
335 EXPECT_TRUE(channel->AddSendStream(StreamParams::CreateLegacy(123))); 341 EXPECT_TRUE(channel->AddSendStream(StreamParams::CreateLegacy(123)));
336 342
337 EXPECT_FALSE(channel->SetSend(true)) 343 EXPECT_FALSE(channel->SetSend(true))
338 << "Channel should not start without codecs."; 344 << "Channel should not start without codecs.";
339 EXPECT_TRUE(channel->SetSend(false)) 345 EXPECT_TRUE(channel->SetSend(false))
340 << "Channel should be stoppable even without set codecs."; 346 << "Channel should be stoppable even without set codecs.";
341 } 347 }
342 348
343 TEST_F(WebRtcVideoEngine2Test, GetStatsWithoutSendCodecsSetDoesNotCrash) { 349 TEST_F(WebRtcVideoEngine2Test, GetStatsWithoutSendCodecsSetDoesNotCrash) {
344 engine_.Init(); 350 engine_.Init();
345 std::unique_ptr<VideoMediaChannel> channel( 351 std::unique_ptr<VideoMediaChannel> channel(
346 engine_.CreateChannel(call_.get(), MediaConfig(), VideoOptions())); 352 engine_.CreateChannel(call_.get(), GetMediaConfig(), VideoOptions()));
347 EXPECT_TRUE(channel->AddSendStream(StreamParams::CreateLegacy(123))); 353 EXPECT_TRUE(channel->AddSendStream(StreamParams::CreateLegacy(123)));
348 VideoMediaInfo info; 354 VideoMediaInfo info;
349 channel->GetStats(&info); 355 channel->GetStats(&info);
350 } 356 }
351 357
352 TEST_F(WebRtcVideoEngine2Test, UseExternalFactoryForVp8WhenSupported) { 358 TEST_F(WebRtcVideoEngine2Test, UseExternalFactoryForVp8WhenSupported) {
353 cricket::FakeWebRtcVideoEncoderFactory encoder_factory; 359 cricket::FakeWebRtcVideoEncoderFactory encoder_factory;
354 encoder_factory.AddSupportedVideoCodecType("VP8"); 360 encoder_factory.AddSupportedVideoCodecType("VP8");
355 361
356 std::unique_ptr<VideoMediaChannel> channel( 362 std::unique_ptr<VideoMediaChannel> channel(
(...skipping 74 matching lines...) Expand 10 before | Expand all | Expand 10 after
431 cricket::FakeWebRtcVideoEncoderFactory encoder_factory; 437 cricket::FakeWebRtcVideoEncoderFactory encoder_factory;
432 encoder_factory.AddSupportedVideoCodecType("VP8"); 438 encoder_factory.AddSupportedVideoCodecType("VP8");
433 std::unique_ptr<VideoMediaChannel> channel; 439 std::unique_ptr<VideoMediaChannel> channel;
434 FakeCall* fake_call = new FakeCall(webrtc::Call::Config(&event_log_)); 440 FakeCall* fake_call = new FakeCall(webrtc::Call::Config(&event_log_));
435 call_.reset(fake_call); 441 call_.reset(fake_call);
436 if (use_external_encoder) { 442 if (use_external_encoder) {
437 channel.reset(SetUpForExternalEncoderFactory(&encoder_factory)); 443 channel.reset(SetUpForExternalEncoderFactory(&encoder_factory));
438 } else { 444 } else {
439 engine_.Init(); 445 engine_.Init();
440 channel.reset( 446 channel.reset(
441 engine_.CreateChannel(call_.get(), MediaConfig(), VideoOptions())); 447 engine_.CreateChannel(call_.get(), GetMediaConfig(), VideoOptions()));
442 } 448 }
443 ASSERT_TRUE( 449 ASSERT_TRUE(
444 channel->AddSendStream(cricket::StreamParams::CreateLegacy(kSsrc))); 450 channel->AddSendStream(cricket::StreamParams::CreateLegacy(kSsrc)));
445 cricket::VideoSendParameters parameters; 451 cricket::VideoSendParameters parameters;
446 parameters.codecs.push_back(GetEngineCodec("VP8")); 452 parameters.codecs.push_back(GetEngineCodec("VP8"));
447 EXPECT_TRUE(channel->SetSendParameters(parameters)); 453 EXPECT_TRUE(channel->SetSendParameters(parameters));
448 EXPECT_TRUE(channel->SetSend(true)); 454 EXPECT_TRUE(channel->SetSend(true));
449 FakeVideoSendStream* stream = fake_call->GetVideoSendStreams()[0]; 455 FakeVideoSendStream* stream = fake_call->GetVideoSendStreams()[0];
450 456
451 EXPECT_EQ(use_external_encoder, 457 EXPECT_EQ(use_external_encoder,
(...skipping 89 matching lines...) Expand 10 before | Expand all | Expand 10 after
541 ADD_FAILURE() << "Unrecognized codec name: " << name; 547 ADD_FAILURE() << "Unrecognized codec name: " << name;
542 return cricket::VideoCodec(); 548 return cricket::VideoCodec();
543 } 549 }
544 550
545 VideoMediaChannel* WebRtcVideoEngine2Test::SetUpForExternalEncoderFactory( 551 VideoMediaChannel* WebRtcVideoEngine2Test::SetUpForExternalEncoderFactory(
546 cricket::WebRtcVideoEncoderFactory* encoder_factory) { 552 cricket::WebRtcVideoEncoderFactory* encoder_factory) {
547 engine_.SetExternalEncoderFactory(encoder_factory); 553 engine_.SetExternalEncoderFactory(encoder_factory);
548 engine_.Init(); 554 engine_.Init();
549 555
550 VideoMediaChannel* channel = 556 VideoMediaChannel* channel =
551 engine_.CreateChannel(call_.get(), MediaConfig(), VideoOptions()); 557 engine_.CreateChannel(call_.get(), GetMediaConfig(), VideoOptions());
552 cricket::VideoSendParameters parameters; 558 cricket::VideoSendParameters parameters;
553 // We need to look up the codec in the engine to get the correct payload type. 559 // We need to look up the codec in the engine to get the correct payload type.
554 for (const VideoCodec& codec : encoder_factory->supported_codecs()) 560 for (const VideoCodec& codec : encoder_factory->supported_codecs())
555 parameters.codecs.push_back(GetEngineCodec(codec.name)); 561 parameters.codecs.push_back(GetEngineCodec(codec.name));
556 562
557 EXPECT_TRUE(channel->SetSendParameters(parameters)); 563 EXPECT_TRUE(channel->SetSendParameters(parameters));
558 564
559 return channel; 565 return channel;
560 } 566 }
561 567
562 VideoMediaChannel* WebRtcVideoEngine2Test::SetUpForExternalDecoderFactory( 568 VideoMediaChannel* WebRtcVideoEngine2Test::SetUpForExternalDecoderFactory(
563 cricket::WebRtcVideoDecoderFactory* decoder_factory, 569 cricket::WebRtcVideoDecoderFactory* decoder_factory,
564 const std::vector<VideoCodec>& codecs) { 570 const std::vector<VideoCodec>& codecs) {
565 engine_.SetExternalDecoderFactory(decoder_factory); 571 engine_.SetExternalDecoderFactory(decoder_factory);
566 engine_.Init(); 572 engine_.Init();
567 573
568 VideoMediaChannel* channel = 574 VideoMediaChannel* channel =
569 engine_.CreateChannel(call_.get(), MediaConfig(), VideoOptions()); 575 engine_.CreateChannel(call_.get(), GetMediaConfig(), VideoOptions());
570 cricket::VideoRecvParameters parameters; 576 cricket::VideoRecvParameters parameters;
571 parameters.codecs = codecs; 577 parameters.codecs = codecs;
572 EXPECT_TRUE(channel->SetRecvParameters(parameters)); 578 EXPECT_TRUE(channel->SetRecvParameters(parameters));
573 579
574 return channel; 580 return channel;
575 } 581 }
576 582
577 TEST_F(WebRtcVideoEngine2Test, UsesSimulcastAdapterForVp8Factories) { 583 TEST_F(WebRtcVideoEngine2Test, UsesSimulcastAdapterForVp8Factories) {
578 cricket::FakeWebRtcVideoEncoderFactory encoder_factory; 584 cricket::FakeWebRtcVideoEncoderFactory encoder_factory;
579 encoder_factory.AddSupportedVideoCodecType("VP8"); 585 encoder_factory.AddSupportedVideoCodecType("VP8");
(...skipping 52 matching lines...) Expand 10 before | Expand all | Expand 10 after
632 638
633 TEST_F(WebRtcVideoEngine2Test, 639 TEST_F(WebRtcVideoEngine2Test,
634 DontUseExternalEncoderFactoryForUnsupportedCodecs) { 640 DontUseExternalEncoderFactoryForUnsupportedCodecs) {
635 cricket::FakeWebRtcVideoEncoderFactory encoder_factory; 641 cricket::FakeWebRtcVideoEncoderFactory encoder_factory;
636 encoder_factory.AddSupportedVideoCodecType("H264"); 642 encoder_factory.AddSupportedVideoCodecType("H264");
637 643
638 engine_.SetExternalEncoderFactory(&encoder_factory); 644 engine_.SetExternalEncoderFactory(&encoder_factory);
639 engine_.Init(); 645 engine_.Init();
640 646
641 std::unique_ptr<VideoMediaChannel> channel( 647 std::unique_ptr<VideoMediaChannel> channel(
642 engine_.CreateChannel(call_.get(), MediaConfig(), VideoOptions())); 648 engine_.CreateChannel(call_.get(), GetMediaConfig(), VideoOptions()));
643 cricket::VideoSendParameters parameters; 649 cricket::VideoSendParameters parameters;
644 parameters.codecs.push_back(GetEngineCodec("VP8")); 650 parameters.codecs.push_back(GetEngineCodec("VP8"));
645 EXPECT_TRUE(channel->SetSendParameters(parameters)); 651 EXPECT_TRUE(channel->SetSendParameters(parameters));
646 652
647 EXPECT_TRUE( 653 EXPECT_TRUE(
648 channel->AddSendStream(cricket::StreamParams::CreateLegacy(kSsrc))); 654 channel->AddSendStream(cricket::StreamParams::CreateLegacy(kSsrc)));
649 // Make sure DestroyVideoEncoder was called on the factory. 655 // Make sure DestroyVideoEncoder was called on the factory.
650 ASSERT_EQ(0u, encoder_factory.encoders().size()); 656 ASSERT_EQ(0u, encoder_factory.encoders().size());
651 } 657 }
652 658
653 TEST_F(WebRtcVideoEngine2Test, 659 TEST_F(WebRtcVideoEngine2Test,
654 UsesSimulcastAdapterForVp8WithCombinedVP8AndH264Factory) { 660 UsesSimulcastAdapterForVp8WithCombinedVP8AndH264Factory) {
655 cricket::FakeWebRtcVideoEncoderFactory encoder_factory; 661 cricket::FakeWebRtcVideoEncoderFactory encoder_factory;
656 encoder_factory.AddSupportedVideoCodecType("VP8"); 662 encoder_factory.AddSupportedVideoCodecType("VP8");
657 encoder_factory.AddSupportedVideoCodecType("H264"); 663 encoder_factory.AddSupportedVideoCodecType("H264");
658 664
659 engine_.SetExternalEncoderFactory(&encoder_factory); 665 engine_.SetExternalEncoderFactory(&encoder_factory);
660 engine_.Init(); 666 engine_.Init();
661 667
662 std::unique_ptr<VideoMediaChannel> channel( 668 std::unique_ptr<VideoMediaChannel> channel(
663 engine_.CreateChannel(call_.get(), MediaConfig(), VideoOptions())); 669 engine_.CreateChannel(call_.get(), GetMediaConfig(), VideoOptions()));
664 cricket::VideoSendParameters parameters; 670 cricket::VideoSendParameters parameters;
665 parameters.codecs.push_back(GetEngineCodec("VP8")); 671 parameters.codecs.push_back(GetEngineCodec("VP8"));
666 EXPECT_TRUE(channel->SetSendParameters(parameters)); 672 EXPECT_TRUE(channel->SetSendParameters(parameters));
667 673
668 std::vector<uint32_t> ssrcs = MAKE_VECTOR(kSsrcs3); 674 std::vector<uint32_t> ssrcs = MAKE_VECTOR(kSsrcs3);
669 675
670 EXPECT_TRUE( 676 EXPECT_TRUE(
671 channel->AddSendStream(CreateSimStreamParams("cname", ssrcs))); 677 channel->AddSendStream(CreateSimStreamParams("cname", ssrcs)));
672 EXPECT_TRUE(channel->SetSend(true)); 678 EXPECT_TRUE(channel->SetSend(true));
673 679
(...skipping 19 matching lines...) Expand all
693 TEST_F(WebRtcVideoEngine2Test, 699 TEST_F(WebRtcVideoEngine2Test,
694 DestroysNonSimulcastEncoderFromCombinedVP8AndH264Factory) { 700 DestroysNonSimulcastEncoderFromCombinedVP8AndH264Factory) {
695 cricket::FakeWebRtcVideoEncoderFactory encoder_factory; 701 cricket::FakeWebRtcVideoEncoderFactory encoder_factory;
696 encoder_factory.AddSupportedVideoCodecType("VP8"); 702 encoder_factory.AddSupportedVideoCodecType("VP8");
697 encoder_factory.AddSupportedVideoCodecType("H264"); 703 encoder_factory.AddSupportedVideoCodecType("H264");
698 704
699 engine_.SetExternalEncoderFactory(&encoder_factory); 705 engine_.SetExternalEncoderFactory(&encoder_factory);
700 engine_.Init(); 706 engine_.Init();
701 707
702 std::unique_ptr<VideoMediaChannel> channel( 708 std::unique_ptr<VideoMediaChannel> channel(
703 engine_.CreateChannel(call_.get(), MediaConfig(), VideoOptions())); 709 engine_.CreateChannel(call_.get(), GetMediaConfig(), VideoOptions()));
704 cricket::VideoSendParameters parameters; 710 cricket::VideoSendParameters parameters;
705 parameters.codecs.push_back(GetEngineCodec("H264")); 711 parameters.codecs.push_back(GetEngineCodec("H264"));
706 EXPECT_TRUE(channel->SetSendParameters(parameters)); 712 EXPECT_TRUE(channel->SetSendParameters(parameters));
707 713
708 EXPECT_TRUE( 714 EXPECT_TRUE(
709 channel->AddSendStream(cricket::StreamParams::CreateLegacy(kSsrc))); 715 channel->AddSendStream(cricket::StreamParams::CreateLegacy(kSsrc)));
710 ASSERT_EQ(1u, encoder_factory.encoders().size()); 716 ASSERT_EQ(1u, encoder_factory.encoders().size());
711 717
712 // Send a frame of 720p. This should trigger a "real" encoder initialization. 718 // Send a frame of 720p. This should trigger a "real" encoder initialization.
713 cricket::VideoFormat format( 719 cricket::VideoFormat format(
(...skipping 242 matching lines...) Expand 10 before | Expand all | Expand 10 after
956 } 962 }
957 963
958 class WebRtcVideoChannel2Test : public WebRtcVideoEngine2Test { 964 class WebRtcVideoChannel2Test : public WebRtcVideoEngine2Test {
959 public: 965 public:
960 WebRtcVideoChannel2Test() : WebRtcVideoChannel2Test("") {} 966 WebRtcVideoChannel2Test() : WebRtcVideoChannel2Test("") {}
961 explicit WebRtcVideoChannel2Test(const char* field_trials) 967 explicit WebRtcVideoChannel2Test(const char* field_trials)
962 : WebRtcVideoEngine2Test(field_trials), last_ssrc_(0) {} 968 : WebRtcVideoEngine2Test(field_trials), last_ssrc_(0) {}
963 void SetUp() override { 969 void SetUp() override {
964 fake_call_.reset(new FakeCall(webrtc::Call::Config(&event_log_))); 970 fake_call_.reset(new FakeCall(webrtc::Call::Config(&event_log_)));
965 engine_.Init(); 971 engine_.Init();
966 channel_.reset( 972 channel_.reset(engine_.CreateChannel(fake_call_.get(), GetMediaConfig(),
967 engine_.CreateChannel(fake_call_.get(), MediaConfig(), VideoOptions())); 973 VideoOptions()));
968 channel_->OnReadyToSend(true); 974 channel_->OnReadyToSend(true);
969 last_ssrc_ = 123; 975 last_ssrc_ = 123;
970 send_parameters_.codecs = engine_.codecs(); 976 send_parameters_.codecs = engine_.codecs();
971 recv_parameters_.codecs = engine_.codecs(); 977 recv_parameters_.codecs = engine_.codecs();
972 ASSERT_TRUE(channel_->SetSendParameters(send_parameters_)); 978 ASSERT_TRUE(channel_->SetSendParameters(send_parameters_));
973 } 979 }
974 980
975 protected: 981 protected:
976 FakeVideoSendStream* AddSendStream() { 982 FakeVideoSendStream* AddSendStream() {
977 return AddSendStream(StreamParams::CreateLegacy(++last_ssrc_)); 983 return AddSendStream(StreamParams::CreateLegacy(++last_ssrc_));
(...skipping 790 matching lines...) Expand 10 before | Expand all | Expand 10 after
1768 1774
1769 EXPECT_TRUE(channel_->SetVideoSend(last_ssrc_, true, nullptr, nullptr)); 1775 EXPECT_TRUE(channel_->SetVideoSend(last_ssrc_, true, nullptr, nullptr));
1770 } 1776 }
1771 1777
1772 TEST_F(WebRtcVideoChannel2Test, SuspendBelowMinBitrateDisabledByDefault) { 1778 TEST_F(WebRtcVideoChannel2Test, SuspendBelowMinBitrateDisabledByDefault) {
1773 FakeVideoSendStream* stream = AddSendStream(); 1779 FakeVideoSendStream* stream = AddSendStream();
1774 EXPECT_FALSE(stream->GetConfig().suspend_below_min_bitrate); 1780 EXPECT_FALSE(stream->GetConfig().suspend_below_min_bitrate);
1775 } 1781 }
1776 1782
1777 TEST_F(WebRtcVideoChannel2Test, SetMediaConfigSuspendBelowMinBitrate) { 1783 TEST_F(WebRtcVideoChannel2Test, SetMediaConfigSuspendBelowMinBitrate) {
1778 MediaConfig media_config = MediaConfig(); 1784 MediaConfig media_config = GetMediaConfig();
1779 media_config.video.suspend_below_min_bitrate = true; 1785 media_config.video.suspend_below_min_bitrate = true;
1780 1786
1781 channel_.reset( 1787 channel_.reset(
1782 engine_.CreateChannel(fake_call_.get(), media_config, VideoOptions())); 1788 engine_.CreateChannel(fake_call_.get(), media_config, VideoOptions()));
1783 channel_->OnReadyToSend(true); 1789 channel_->OnReadyToSend(true);
1784 1790
1785 channel_->SetSendParameters(send_parameters_); 1791 channel_->SetSendParameters(send_parameters_);
1786 1792
1787 FakeVideoSendStream* stream = AddSendStream(); 1793 FakeVideoSendStream* stream = AddSendStream();
1788 EXPECT_TRUE(stream->GetConfig().suspend_below_min_bitrate); 1794 EXPECT_TRUE(stream->GetConfig().suspend_below_min_bitrate);
(...skipping 276 matching lines...) Expand 10 before | Expand all | Expand 10 after
2065 2071
2066 TEST_F(WebRtcVideoChannel2Test, DoesNotAdaptOnOveruseWhenScreensharing) { 2072 TEST_F(WebRtcVideoChannel2Test, DoesNotAdaptOnOveruseWhenScreensharing) {
2067 TestCpuAdaptation(true, true); 2073 TestCpuAdaptation(true, true);
2068 } 2074 }
2069 2075
2070 TEST_F(WebRtcVideoChannel2Test, AdaptsOnOveruseAndChangeResolution) { 2076 TEST_F(WebRtcVideoChannel2Test, AdaptsOnOveruseAndChangeResolution) {
2071 cricket::VideoCodec codec = GetEngineCodec("VP8"); 2077 cricket::VideoCodec codec = GetEngineCodec("VP8");
2072 cricket::VideoSendParameters parameters; 2078 cricket::VideoSendParameters parameters;
2073 parameters.codecs.push_back(codec); 2079 parameters.codecs.push_back(codec);
2074 2080
2075 MediaConfig media_config = MediaConfig(); 2081 MediaConfig media_config = GetMediaConfig();
2076 channel_.reset( 2082 channel_.reset(
2077 engine_.CreateChannel(fake_call_.get(), media_config, VideoOptions())); 2083 engine_.CreateChannel(fake_call_.get(), media_config, VideoOptions()));
2078 channel_->OnReadyToSend(true); 2084 channel_->OnReadyToSend(true);
2079 ASSERT_TRUE(channel_->SetSendParameters(parameters)); 2085 ASSERT_TRUE(channel_->SetSendParameters(parameters));
2080 2086
2081 AddSendStream(); 2087 AddSendStream();
2082 2088
2083 cricket::FakeVideoCapturer capturer; 2089 cricket::FakeVideoCapturer capturer;
2084 ASSERT_TRUE(channel_->SetVideoSend(last_ssrc_, true, nullptr, &capturer)); 2090 ASSERT_TRUE(channel_->SetVideoSend(last_ssrc_, true, nullptr, &capturer));
2085 ASSERT_EQ(cricket::CS_RUNNING, 2091 ASSERT_EQ(cricket::CS_RUNNING,
(...skipping 54 matching lines...) Expand 10 before | Expand all | Expand 10 after
2140 EXPECT_EQ(724, send_stream->GetLastHeight()); 2146 EXPECT_EQ(724, send_stream->GetLastHeight());
2141 2147
2142 EXPECT_TRUE(channel_->SetVideoSend(last_ssrc_, true, nullptr, nullptr)); 2148 EXPECT_TRUE(channel_->SetVideoSend(last_ssrc_, true, nullptr, nullptr));
2143 } 2149 }
2144 2150
2145 TEST_F(WebRtcVideoChannel2Test, PreviousAdaptationDoesNotApplyToScreenshare) { 2151 TEST_F(WebRtcVideoChannel2Test, PreviousAdaptationDoesNotApplyToScreenshare) {
2146 cricket::VideoCodec codec = GetEngineCodec("VP8"); 2152 cricket::VideoCodec codec = GetEngineCodec("VP8");
2147 cricket::VideoSendParameters parameters; 2153 cricket::VideoSendParameters parameters;
2148 parameters.codecs.push_back(codec); 2154 parameters.codecs.push_back(codec);
2149 2155
2150 MediaConfig media_config = MediaConfig(); 2156 MediaConfig media_config = GetMediaConfig();
2157 media_config.video.enable_cpu_overuse_detection = true;
2151 channel_.reset( 2158 channel_.reset(
2152 engine_.CreateChannel(fake_call_.get(), media_config, VideoOptions())); 2159 engine_.CreateChannel(fake_call_.get(), media_config, VideoOptions()));
2153 channel_->OnReadyToSend(true); 2160 channel_->OnReadyToSend(true);
2154 ASSERT_TRUE(channel_->SetSendParameters(parameters)); 2161 ASSERT_TRUE(channel_->SetSendParameters(parameters));
2155 2162
2156 AddSendStream(); 2163 AddSendStream();
2157 2164
2158 cricket::FakeVideoCapturer capturer; 2165 cricket::FakeVideoCapturer capturer;
2159 ASSERT_EQ(cricket::CS_RUNNING, 2166 ASSERT_EQ(cricket::CS_RUNNING,
2160 capturer.Start(capturer.GetSupportedFormats()->front())); 2167 capturer.Start(capturer.GetSupportedFormats()->front()));
(...skipping 44 matching lines...) Expand 10 before | Expand all | Expand 10 after
2205 2212
2206 EXPECT_TRUE(channel_->SetVideoSend(last_ssrc_, true, nullptr, nullptr)); 2213 EXPECT_TRUE(channel_->SetVideoSend(last_ssrc_, true, nullptr, nullptr));
2207 } 2214 }
2208 2215
2209 void WebRtcVideoChannel2Test::TestCpuAdaptation(bool enable_overuse, 2216 void WebRtcVideoChannel2Test::TestCpuAdaptation(bool enable_overuse,
2210 bool is_screenshare) { 2217 bool is_screenshare) {
2211 cricket::VideoCodec codec = GetEngineCodec("VP8"); 2218 cricket::VideoCodec codec = GetEngineCodec("VP8");
2212 cricket::VideoSendParameters parameters; 2219 cricket::VideoSendParameters parameters;
2213 parameters.codecs.push_back(codec); 2220 parameters.codecs.push_back(codec);
2214 2221
2215 MediaConfig media_config = MediaConfig(); 2222 MediaConfig media_config = GetMediaConfig();
2216 if (!enable_overuse) { 2223 if (enable_overuse) {
2217 media_config.video.enable_cpu_overuse_detection = false; 2224 media_config.video.enable_cpu_overuse_detection = true;
2218 } 2225 }
2219 channel_.reset( 2226 channel_.reset(
2220 engine_.CreateChannel(fake_call_.get(), media_config, VideoOptions())); 2227 engine_.CreateChannel(fake_call_.get(), media_config, VideoOptions()));
2221 channel_->OnReadyToSend(true); 2228 channel_->OnReadyToSend(true);
2222 2229
2223 EXPECT_TRUE(channel_->SetSendParameters(parameters)); 2230 EXPECT_TRUE(channel_->SetSendParameters(parameters));
2224 2231
2225 AddSendStream(); 2232 AddSendStream();
2226 2233
2227 cricket::FakeVideoCapturer capturer; 2234 cricket::FakeVideoCapturer capturer;
(...skipping 1705 matching lines...) Expand 10 before | Expand all | Expand 10 after
3933 } 3940 }
3934 3941
3935 class WebRtcVideoChannel2SimulcastTest : public testing::Test { 3942 class WebRtcVideoChannel2SimulcastTest : public testing::Test {
3936 public: 3943 public:
3937 WebRtcVideoChannel2SimulcastTest() 3944 WebRtcVideoChannel2SimulcastTest()
3938 : fake_call_(webrtc::Call::Config(&event_log_)), last_ssrc_(0) {} 3945 : fake_call_(webrtc::Call::Config(&event_log_)), last_ssrc_(0) {}
3939 3946
3940 void SetUp() override { 3947 void SetUp() override {
3941 engine_.Init(); 3948 engine_.Init();
3942 channel_.reset( 3949 channel_.reset(
3943 engine_.CreateChannel(&fake_call_, MediaConfig(), VideoOptions())); 3950 engine_.CreateChannel(&fake_call_, GetMediaConfig(), VideoOptions()));
3944 channel_->OnReadyToSend(true); 3951 channel_->OnReadyToSend(true);
3945 last_ssrc_ = 123; 3952 last_ssrc_ = 123;
3946 } 3953 }
3947 3954
3948 protected: 3955 protected:
3949 void VerifySimulcastSettings(const VideoCodec& codec, 3956 void VerifySimulcastSettings(const VideoCodec& codec,
3950 int capture_width, 3957 int capture_width,
3951 int capture_height, 3958 int capture_height,
3952 size_t num_configured_streams, 3959 size_t num_configured_streams,
3953 size_t expected_num_streams, 3960 size_t expected_num_streams,
(...skipping 165 matching lines...) Expand 10 before | Expand all | Expand 10 after
4119 } 4126 }
4120 4127
4121 TEST_F(WebRtcVideoChannel2SimulcastTest, SetSendCodecsForSimulcastScreenshare) { 4128 TEST_F(WebRtcVideoChannel2SimulcastTest, SetSendCodecsForSimulcastScreenshare) {
4122 webrtc::test::ScopedFieldTrials override_field_trials_( 4129 webrtc::test::ScopedFieldTrials override_field_trials_(
4123 "WebRTC-SimulcastScreenshare/Enabled/"); 4130 "WebRTC-SimulcastScreenshare/Enabled/");
4124 VerifySimulcastSettings(cricket::VideoCodec("VP8"), 1280, 720, 3, 2, true, 4131 VerifySimulcastSettings(cricket::VideoCodec("VP8"), 1280, 720, 3, 2, true,
4125 true); 4132 true);
4126 } 4133 }
4127 4134
4128 } // namespace cricket 4135 } // namespace cricket
OLDNEW
« no previous file with comments | « webrtc/api/video/video_frame.cc ('k') | webrtc/modules/video_coding/utility/default_video_bitrate_allocator.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698