| OLD | NEW |
| 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 267 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 278 | 278 |
| 279 // Verify removing header extension turns on applying rotation. | 279 // Verify removing header extension turns on applying rotation. |
| 280 parameters.extensions.clear(); | 280 parameters.extensions.clear(); |
| 281 EXPECT_TRUE(channel->SetSendParameters(parameters)); | 281 EXPECT_TRUE(channel->SetSendParameters(parameters)); |
| 282 EXPECT_TRUE(capturer.GetApplyRotation()); | 282 EXPECT_TRUE(capturer.GetApplyRotation()); |
| 283 } | 283 } |
| 284 | 284 |
| 285 TEST_F(WebRtcVideoEngine2Test, SetSendFailsBeforeSettingCodecs) { | 285 TEST_F(WebRtcVideoEngine2Test, SetSendFailsBeforeSettingCodecs) { |
| 286 engine_.Init(); | 286 engine_.Init(); |
| 287 rtc::scoped_ptr<VideoMediaChannel> channel( | 287 rtc::scoped_ptr<VideoMediaChannel> channel( |
| 288 engine_.CreateChannel(call_.get(), cricket::VideoOptions())); | 288 engine_.CreateChannel(call_.get(), MediaConfig(), VideoOptions())); |
| 289 | 289 |
| 290 EXPECT_TRUE(channel->AddSendStream(StreamParams::CreateLegacy(123))); | 290 EXPECT_TRUE(channel->AddSendStream(StreamParams::CreateLegacy(123))); |
| 291 | 291 |
| 292 EXPECT_FALSE(channel->SetSend(true)) | 292 EXPECT_FALSE(channel->SetSend(true)) |
| 293 << "Channel should not start without codecs."; | 293 << "Channel should not start without codecs."; |
| 294 EXPECT_TRUE(channel->SetSend(false)) | 294 EXPECT_TRUE(channel->SetSend(false)) |
| 295 << "Channel should be stoppable even without set codecs."; | 295 << "Channel should be stoppable even without set codecs."; |
| 296 } | 296 } |
| 297 | 297 |
| 298 TEST_F(WebRtcVideoEngine2Test, GetStatsWithoutSendCodecsSetDoesNotCrash) { | 298 TEST_F(WebRtcVideoEngine2Test, GetStatsWithoutSendCodecsSetDoesNotCrash) { |
| 299 engine_.Init(); | 299 engine_.Init(); |
| 300 rtc::scoped_ptr<VideoMediaChannel> channel( | 300 rtc::scoped_ptr<VideoMediaChannel> channel( |
| 301 engine_.CreateChannel(call_.get(), cricket::VideoOptions())); | 301 engine_.CreateChannel(call_.get(), MediaConfig(), VideoOptions())); |
| 302 EXPECT_TRUE(channel->AddSendStream(StreamParams::CreateLegacy(123))); | 302 EXPECT_TRUE(channel->AddSendStream(StreamParams::CreateLegacy(123))); |
| 303 VideoMediaInfo info; | 303 VideoMediaInfo info; |
| 304 channel->GetStats(&info); | 304 channel->GetStats(&info); |
| 305 } | 305 } |
| 306 | 306 |
| 307 TEST_F(WebRtcVideoEngine2Test, UseExternalFactoryForVp8WhenSupported) { | 307 TEST_F(WebRtcVideoEngine2Test, UseExternalFactoryForVp8WhenSupported) { |
| 308 cricket::FakeWebRtcVideoEncoderFactory encoder_factory; | 308 cricket::FakeWebRtcVideoEncoderFactory encoder_factory; |
| 309 encoder_factory.AddSupportedVideoCodecType(webrtc::kVideoCodecVP8, "VP8"); | 309 encoder_factory.AddSupportedVideoCodecType(webrtc::kVideoCodecVP8, "VP8"); |
| 310 cricket::VideoSendParameters parameters; | 310 cricket::VideoSendParameters parameters; |
| 311 parameters.codecs.push_back(kVp8Codec); | 311 parameters.codecs.push_back(kVp8Codec); |
| (...skipping 36 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 348 cricket::VideoSendParameters parameters; | 348 cricket::VideoSendParameters parameters; |
| 349 parameters.codecs.push_back(kVp8Codec); | 349 parameters.codecs.push_back(kVp8Codec); |
| 350 rtc::scoped_ptr<VideoMediaChannel> channel; | 350 rtc::scoped_ptr<VideoMediaChannel> channel; |
| 351 FakeCall* fake_call = new FakeCall(webrtc::Call::Config()); | 351 FakeCall* fake_call = new FakeCall(webrtc::Call::Config()); |
| 352 call_.reset(fake_call); | 352 call_.reset(fake_call); |
| 353 if (use_external_encoder) { | 353 if (use_external_encoder) { |
| 354 channel.reset( | 354 channel.reset( |
| 355 SetUpForExternalEncoderFactory(&encoder_factory, parameters.codecs)); | 355 SetUpForExternalEncoderFactory(&encoder_factory, parameters.codecs)); |
| 356 } else { | 356 } else { |
| 357 engine_.Init(); | 357 engine_.Init(); |
| 358 channel.reset(engine_.CreateChannel(call_.get(), cricket::VideoOptions())); | 358 channel.reset( |
| 359 engine_.CreateChannel(call_.get(), MediaConfig(), VideoOptions())); |
| 359 } | 360 } |
| 360 ASSERT_TRUE( | 361 ASSERT_TRUE( |
| 361 channel->AddSendStream(cricket::StreamParams::CreateLegacy(kSsrc))); | 362 channel->AddSendStream(cricket::StreamParams::CreateLegacy(kSsrc))); |
| 362 EXPECT_TRUE(channel->SetSendParameters(parameters)); | 363 EXPECT_TRUE(channel->SetSendParameters(parameters)); |
| 363 EXPECT_TRUE(channel->SetSend(true)); | 364 EXPECT_TRUE(channel->SetSend(true)); |
| 364 FakeVideoSendStream* stream = fake_call->GetVideoSendStreams()[0]; | 365 FakeVideoSendStream* stream = fake_call->GetVideoSendStreams()[0]; |
| 365 | 366 |
| 366 EXPECT_EQ(use_external_encoder, | 367 EXPECT_EQ(use_external_encoder, |
| 367 stream->GetConfig().encoder_settings.full_overuse_time); | 368 stream->GetConfig().encoder_settings.full_overuse_time); |
| 368 // Remove stream previously added to free the external encoder instance. | 369 // Remove stream previously added to free the external encoder instance. |
| (...skipping 137 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 506 EXPECT_TRUE(channel->RemoveSendStream(kSsrc)); | 507 EXPECT_TRUE(channel->RemoveSendStream(kSsrc)); |
| 507 } | 508 } |
| 508 | 509 |
| 509 VideoMediaChannel* WebRtcVideoEngine2Test::SetUpForExternalEncoderFactory( | 510 VideoMediaChannel* WebRtcVideoEngine2Test::SetUpForExternalEncoderFactory( |
| 510 cricket::WebRtcVideoEncoderFactory* encoder_factory, | 511 cricket::WebRtcVideoEncoderFactory* encoder_factory, |
| 511 const std::vector<VideoCodec>& codecs) { | 512 const std::vector<VideoCodec>& codecs) { |
| 512 engine_.SetExternalEncoderFactory(encoder_factory); | 513 engine_.SetExternalEncoderFactory(encoder_factory); |
| 513 engine_.Init(); | 514 engine_.Init(); |
| 514 | 515 |
| 515 VideoMediaChannel* channel = | 516 VideoMediaChannel* channel = |
| 516 engine_.CreateChannel(call_.get(), cricket::VideoOptions()); | 517 engine_.CreateChannel(call_.get(), MediaConfig(), VideoOptions()); |
| 517 cricket::VideoSendParameters parameters; | 518 cricket::VideoSendParameters parameters; |
| 518 parameters.codecs = codecs; | 519 parameters.codecs = codecs; |
| 519 EXPECT_TRUE(channel->SetSendParameters(parameters)); | 520 EXPECT_TRUE(channel->SetSendParameters(parameters)); |
| 520 | 521 |
| 521 return channel; | 522 return channel; |
| 522 } | 523 } |
| 523 | 524 |
| 524 VideoMediaChannel* WebRtcVideoEngine2Test::SetUpForExternalDecoderFactory( | 525 VideoMediaChannel* WebRtcVideoEngine2Test::SetUpForExternalDecoderFactory( |
| 525 cricket::WebRtcVideoDecoderFactory* decoder_factory, | 526 cricket::WebRtcVideoDecoderFactory* decoder_factory, |
| 526 const std::vector<VideoCodec>& codecs) { | 527 const std::vector<VideoCodec>& codecs) { |
| 527 engine_.SetExternalDecoderFactory(decoder_factory); | 528 engine_.SetExternalDecoderFactory(decoder_factory); |
| 528 engine_.Init(); | 529 engine_.Init(); |
| 529 | 530 |
| 530 VideoMediaChannel* channel = | 531 VideoMediaChannel* channel = |
| 531 engine_.CreateChannel(call_.get(), cricket::VideoOptions()); | 532 engine_.CreateChannel(call_.get(), MediaConfig(), VideoOptions()); |
| 532 cricket::VideoRecvParameters parameters; | 533 cricket::VideoRecvParameters parameters; |
| 533 parameters.codecs = codecs; | 534 parameters.codecs = codecs; |
| 534 EXPECT_TRUE(channel->SetRecvParameters(parameters)); | 535 EXPECT_TRUE(channel->SetRecvParameters(parameters)); |
| 535 | 536 |
| 536 return channel; | 537 return channel; |
| 537 } | 538 } |
| 538 | 539 |
| 539 TEST_F(WebRtcVideoEngine2Test, UsesSimulcastAdapterForVp8Factories) { | 540 TEST_F(WebRtcVideoEngine2Test, UsesSimulcastAdapterForVp8Factories) { |
| 540 cricket::FakeWebRtcVideoEncoderFactory encoder_factory; | 541 cricket::FakeWebRtcVideoEncoderFactory encoder_factory; |
| 541 encoder_factory.AddSupportedVideoCodecType(webrtc::kVideoCodecVP8, "VP8"); | 542 encoder_factory.AddSupportedVideoCodecType(webrtc::kVideoCodecVP8, "VP8"); |
| (...skipping 299 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 841 | 842 |
| 842 class WebRtcVideoChannel2Test : public WebRtcVideoEngine2Test { | 843 class WebRtcVideoChannel2Test : public WebRtcVideoEngine2Test { |
| 843 public: | 844 public: |
| 844 WebRtcVideoChannel2Test() : WebRtcVideoChannel2Test("") {} | 845 WebRtcVideoChannel2Test() : WebRtcVideoChannel2Test("") {} |
| 845 explicit WebRtcVideoChannel2Test(const char* field_trials) | 846 explicit WebRtcVideoChannel2Test(const char* field_trials) |
| 846 : WebRtcVideoEngine2Test(field_trials), last_ssrc_(0) {} | 847 : WebRtcVideoEngine2Test(field_trials), last_ssrc_(0) {} |
| 847 void SetUp() override { | 848 void SetUp() override { |
| 848 fake_call_.reset(new FakeCall(webrtc::Call::Config())); | 849 fake_call_.reset(new FakeCall(webrtc::Call::Config())); |
| 849 engine_.Init(); | 850 engine_.Init(); |
| 850 channel_.reset( | 851 channel_.reset( |
| 851 engine_.CreateChannel(fake_call_.get(), cricket::VideoOptions())); | 852 engine_.CreateChannel(fake_call_.get(), MediaConfig(), VideoOptions())); |
| 852 last_ssrc_ = 123; | 853 last_ssrc_ = 123; |
| 853 send_parameters_.codecs = engine_.codecs(); | 854 send_parameters_.codecs = engine_.codecs(); |
| 854 recv_parameters_.codecs = engine_.codecs(); | 855 recv_parameters_.codecs = engine_.codecs(); |
| 855 ASSERT_TRUE(channel_->SetSendParameters(send_parameters_)); | 856 ASSERT_TRUE(channel_->SetSendParameters(send_parameters_)); |
| 856 } | 857 } |
| 857 | 858 |
| 858 protected: | 859 protected: |
| 859 FakeVideoSendStream* AddSendStream() { | 860 FakeVideoSendStream* AddSendStream() { |
| 860 return AddSendStream(StreamParams::CreateLegacy(++last_ssrc_)); | 861 return AddSendStream(StreamParams::CreateLegacy(++last_ssrc_)); |
| 861 } | 862 } |
| (...skipping 868 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1730 | 1731 |
| 1731 TEST_F(WebRtcVideoChannel2Test, DoesNotAdaptOnOveruseWhenScreensharing) { | 1732 TEST_F(WebRtcVideoChannel2Test, DoesNotAdaptOnOveruseWhenScreensharing) { |
| 1732 TestCpuAdaptation(true, true); | 1733 TestCpuAdaptation(true, true); |
| 1733 } | 1734 } |
| 1734 | 1735 |
| 1735 void WebRtcVideoChannel2Test::TestCpuAdaptation(bool enable_overuse, | 1736 void WebRtcVideoChannel2Test::TestCpuAdaptation(bool enable_overuse, |
| 1736 bool is_screenshare) { | 1737 bool is_screenshare) { |
| 1737 cricket::VideoCodec codec = kVp8Codec720p; | 1738 cricket::VideoCodec codec = kVp8Codec720p; |
| 1738 cricket::VideoSendParameters parameters; | 1739 cricket::VideoSendParameters parameters; |
| 1739 parameters.codecs.push_back(codec); | 1740 parameters.codecs.push_back(codec); |
| 1741 |
| 1742 MediaConfig media_config = MediaConfig(); |
| 1740 if (!enable_overuse) { | 1743 if (!enable_overuse) { |
| 1741 parameters.options.cpu_overuse_detection = rtc::Optional<bool>(false); | 1744 media_config.enable_cpu_overuse_detection = false; |
| 1742 } | 1745 } |
| 1746 channel_.reset( |
| 1747 engine_.CreateChannel(fake_call_.get(), media_config, VideoOptions())); |
| 1748 |
| 1743 EXPECT_TRUE(channel_->SetSendParameters(parameters)); | 1749 EXPECT_TRUE(channel_->SetSendParameters(parameters)); |
| 1744 | 1750 |
| 1745 AddSendStream(); | 1751 AddSendStream(); |
| 1746 | 1752 |
| 1747 cricket::FakeVideoCapturer capturer; | 1753 cricket::FakeVideoCapturer capturer; |
| 1748 capturer.SetScreencast(is_screenshare); | 1754 capturer.SetScreencast(is_screenshare); |
| 1749 EXPECT_TRUE(channel_->SetCapturer(last_ssrc_, &capturer)); | 1755 EXPECT_TRUE(channel_->SetCapturer(last_ssrc_, &capturer)); |
| 1750 EXPECT_EQ(cricket::CS_RUNNING, | 1756 EXPECT_EQ(cricket::CS_RUNNING, |
| 1751 capturer.Start(capturer.GetSupportedFormats()->front())); | 1757 capturer.Start(capturer.GetSupportedFormats()->front())); |
| 1752 | 1758 |
| (...skipping 506 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2259 EXPECT_TRUE(channel_->SetSend(true)); | 2265 EXPECT_TRUE(channel_->SetSend(true)); |
| 2260 FakeVideoSendStream* new_stream = AddSendStream(); | 2266 FakeVideoSendStream* new_stream = AddSendStream(); |
| 2261 EXPECT_TRUE(new_stream->IsSending()) | 2267 EXPECT_TRUE(new_stream->IsSending()) |
| 2262 << "Send stream created after SetSend(true) not sending initially."; | 2268 << "Send stream created after SetSend(true) not sending initially."; |
| 2263 } | 2269 } |
| 2264 | 2270 |
| 2265 // This test verifies DSCP settings are properly applied on video media channel. | 2271 // This test verifies DSCP settings are properly applied on video media channel. |
| 2266 TEST_F(WebRtcVideoChannel2Test, TestSetDscpOptions) { | 2272 TEST_F(WebRtcVideoChannel2Test, TestSetDscpOptions) { |
| 2267 rtc::scoped_ptr<cricket::FakeNetworkInterface> network_interface( | 2273 rtc::scoped_ptr<cricket::FakeNetworkInterface> network_interface( |
| 2268 new cricket::FakeNetworkInterface); | 2274 new cricket::FakeNetworkInterface); |
| 2269 channel_->SetInterface(network_interface.get()); | 2275 MediaConfig config; |
| 2270 cricket::VideoSendParameters parameters = send_parameters_; | 2276 rtc::scoped_ptr<VideoMediaChannel> channel; |
| 2271 EXPECT_TRUE(channel_->SetSendParameters(parameters)); | 2277 |
| 2272 EXPECT_EQ(rtc::DSCP_NO_CHANGE, network_interface->dscp()); | 2278 channel.reset(engine_.CreateChannel(call_.get(), config, VideoOptions())); |
| 2273 parameters.options.dscp = rtc::Optional<bool>(true); | 2279 channel->SetInterface(network_interface.get()); |
| 2274 EXPECT_TRUE(channel_->SetSendParameters(parameters)); | 2280 // Default value when DSCP is disabled should be DSCP_DEFAULT. |
| 2281 EXPECT_EQ(rtc::DSCP_DEFAULT, network_interface->dscp()); |
| 2282 |
| 2283 config.enable_dscp = true; |
| 2284 channel.reset(engine_.CreateChannel(call_.get(), config, VideoOptions())); |
| 2285 channel->SetInterface(network_interface.get()); |
| 2275 EXPECT_EQ(rtc::DSCP_AF41, network_interface->dscp()); | 2286 EXPECT_EQ(rtc::DSCP_AF41, network_interface->dscp()); |
| 2276 // Verify previous value is not modified if dscp option is not set. | 2287 |
| 2277 cricket::VideoSendParameters parameters1 = send_parameters_; | 2288 // Verify that setting the option to false resets the |
| 2278 EXPECT_TRUE(channel_->SetSendParameters(parameters1)); | 2289 // DiffServCodePoint. |
| 2279 EXPECT_EQ(rtc::DSCP_AF41, network_interface->dscp()); | 2290 config.enable_dscp = false; |
| 2280 parameters1.options.dscp = rtc::Optional<bool>(false); | 2291 channel.reset(engine_.CreateChannel(call_.get(), config, VideoOptions())); |
| 2281 EXPECT_TRUE(channel_->SetSendParameters(parameters1)); | 2292 channel->SetInterface(network_interface.get()); |
| 2282 EXPECT_EQ(rtc::DSCP_DEFAULT, network_interface->dscp()); | 2293 EXPECT_EQ(rtc::DSCP_DEFAULT, network_interface->dscp()); |
| 2283 channel_->SetInterface(NULL); | |
| 2284 } | 2294 } |
| 2285 | 2295 |
| 2286 // This test verifies that the RTCP reduced size mode is properly applied to | 2296 // This test verifies that the RTCP reduced size mode is properly applied to |
| 2287 // send video streams. | 2297 // send video streams. |
| 2288 TEST_F(WebRtcVideoChannel2Test, TestSetSendRtcpReducedSize) { | 2298 TEST_F(WebRtcVideoChannel2Test, TestSetSendRtcpReducedSize) { |
| 2289 // Create stream, expecting that default mode is "compound". | 2299 // Create stream, expecting that default mode is "compound". |
| 2290 FakeVideoSendStream* stream1 = AddSendStream(); | 2300 FakeVideoSendStream* stream1 = AddSendStream(); |
| 2291 EXPECT_EQ(webrtc::RtcpMode::kCompound, stream1->GetConfig().rtp.rtcp_mode); | 2301 EXPECT_EQ(webrtc::RtcpMode::kCompound, stream1->GetConfig().rtp.rtcp_mode); |
| 2292 | 2302 |
| 2293 // Now enable reduced size mode. | 2303 // Now enable reduced size mode. |
| (...skipping 102 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2396 EXPECT_TRUE(channel_->SetCapturer(kSsrcs3[0], &video_capturer_vga)); | 2406 EXPECT_TRUE(channel_->SetCapturer(kSsrcs3[0], &video_capturer_vga)); |
| 2397 EXPECT_TRUE(video_capturer_vga.CaptureFrame()); | 2407 EXPECT_TRUE(video_capturer_vga.CaptureFrame()); |
| 2398 | 2408 |
| 2399 cricket::VideoCodec send_codec(100, "VP8", 640, 480, 30, 0); | 2409 cricket::VideoCodec send_codec(100, "VP8", 640, 480, 30, 0); |
| 2400 cricket::VideoSendParameters parameters; | 2410 cricket::VideoSendParameters parameters; |
| 2401 parameters.codecs.push_back(send_codec); | 2411 parameters.codecs.push_back(send_codec); |
| 2402 EXPECT_TRUE(channel_->SetSendParameters(parameters)); | 2412 EXPECT_TRUE(channel_->SetSendParameters(parameters)); |
| 2403 EXPECT_TRUE(channel_->SetSend(true)); | 2413 EXPECT_TRUE(channel_->SetSend(true)); |
| 2404 | 2414 |
| 2405 // Verify that the CpuOveruseObserver is registered and trigger downgrade. | 2415 // Verify that the CpuOveruseObserver is registered and trigger downgrade. |
| 2406 parameters.options.cpu_overuse_detection = rtc::Optional<bool>(true); | |
| 2407 EXPECT_TRUE(channel_->SetSendParameters(parameters)); | |
| 2408 | 2416 |
| 2409 // Trigger overuse. | 2417 // Trigger overuse. |
| 2410 ASSERT_EQ(1u, fake_call_->GetVideoSendStreams().size()); | 2418 ASSERT_EQ(1u, fake_call_->GetVideoSendStreams().size()); |
| 2411 webrtc::LoadObserver* overuse_callback = | 2419 webrtc::LoadObserver* overuse_callback = |
| 2412 fake_call_->GetVideoSendStreams().front()->GetConfig().overuse_callback; | 2420 fake_call_->GetVideoSendStreams().front()->GetConfig().overuse_callback; |
| 2413 ASSERT_TRUE(overuse_callback != NULL); | 2421 ASSERT_TRUE(overuse_callback != NULL); |
| 2414 overuse_callback->OnLoadUpdate(webrtc::LoadObserver::kOveruse); | 2422 overuse_callback->OnLoadUpdate(webrtc::LoadObserver::kOveruse); |
| 2415 | 2423 |
| 2416 // Capture format VGA -> adapt (OnCpuResolutionRequest downgrade) -> VGA/2. | 2424 // Capture format VGA -> adapt (OnCpuResolutionRequest downgrade) -> VGA/2. |
| 2417 EXPECT_TRUE(video_capturer_vga.CaptureFrame()); | 2425 EXPECT_TRUE(video_capturer_vga.CaptureFrame()); |
| (...skipping 55 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2473 EXPECT_TRUE(channel_->SetCapturer(kSsrcs3[0], &video_capturer_vga)); | 2481 EXPECT_TRUE(channel_->SetCapturer(kSsrcs3[0], &video_capturer_vga)); |
| 2474 EXPECT_TRUE(video_capturer_vga.CaptureFrame()); | 2482 EXPECT_TRUE(video_capturer_vga.CaptureFrame()); |
| 2475 | 2483 |
| 2476 cricket::VideoCodec send_codec(100, "VP8", 640, 480, 30, 0); | 2484 cricket::VideoCodec send_codec(100, "VP8", 640, 480, 30, 0); |
| 2477 cricket::VideoSendParameters parameters; | 2485 cricket::VideoSendParameters parameters; |
| 2478 parameters.codecs.push_back(send_codec); | 2486 parameters.codecs.push_back(send_codec); |
| 2479 EXPECT_TRUE(channel_->SetSendParameters(parameters)); | 2487 EXPECT_TRUE(channel_->SetSendParameters(parameters)); |
| 2480 EXPECT_TRUE(channel_->SetSend(true)); | 2488 EXPECT_TRUE(channel_->SetSend(true)); |
| 2481 | 2489 |
| 2482 // Verify that the CpuOveruseObserver is registered and trigger downgrade. | 2490 // Verify that the CpuOveruseObserver is registered and trigger downgrade. |
| 2483 parameters.options.cpu_overuse_detection = rtc::Optional<bool>(true); | |
| 2484 EXPECT_TRUE(channel_->SetSendParameters(parameters)); | |
| 2485 | 2491 |
| 2486 // Trigger overuse -> adapt CPU. | 2492 // Trigger overuse -> adapt CPU. |
| 2487 ASSERT_EQ(1u, fake_call_->GetVideoSendStreams().size()); | 2493 ASSERT_EQ(1u, fake_call_->GetVideoSendStreams().size()); |
| 2488 webrtc::LoadObserver* overuse_callback = | 2494 webrtc::LoadObserver* overuse_callback = |
| 2489 fake_call_->GetVideoSendStreams().front()->GetConfig().overuse_callback; | 2495 fake_call_->GetVideoSendStreams().front()->GetConfig().overuse_callback; |
| 2490 ASSERT_TRUE(overuse_callback != NULL); | 2496 ASSERT_TRUE(overuse_callback != NULL); |
| 2491 overuse_callback->OnLoadUpdate(webrtc::LoadObserver::kOveruse); | 2497 overuse_callback->OnLoadUpdate(webrtc::LoadObserver::kOveruse); |
| 2492 EXPECT_TRUE(video_capturer_vga.CaptureFrame()); | 2498 EXPECT_TRUE(video_capturer_vga.CaptureFrame()); |
| 2493 cricket::VideoMediaInfo info; | 2499 cricket::VideoMediaInfo info; |
| 2494 EXPECT_TRUE(channel_->GetStats(&info)); | 2500 EXPECT_TRUE(channel_->GetStats(&info)); |
| (...skipping 439 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2934 TEST_F(WebRtcVideoChannel2Test, ConfiguresLocalSsrcOnExistingReceivers) { | 2940 TEST_F(WebRtcVideoChannel2Test, ConfiguresLocalSsrcOnExistingReceivers) { |
| 2935 TestReceiverLocalSsrcConfiguration(true); | 2941 TestReceiverLocalSsrcConfiguration(true); |
| 2936 } | 2942 } |
| 2937 | 2943 |
| 2938 class WebRtcVideoChannel2SimulcastTest : public testing::Test { | 2944 class WebRtcVideoChannel2SimulcastTest : public testing::Test { |
| 2939 public: | 2945 public: |
| 2940 WebRtcVideoChannel2SimulcastTest() : fake_call_(webrtc::Call::Config()) {} | 2946 WebRtcVideoChannel2SimulcastTest() : fake_call_(webrtc::Call::Config()) {} |
| 2941 | 2947 |
| 2942 void SetUp() override { | 2948 void SetUp() override { |
| 2943 engine_.Init(); | 2949 engine_.Init(); |
| 2944 channel_.reset(engine_.CreateChannel(&fake_call_, VideoOptions())); | 2950 channel_.reset( |
| 2951 engine_.CreateChannel(&fake_call_, MediaConfig(), VideoOptions())); |
| 2945 last_ssrc_ = 123; | 2952 last_ssrc_ = 123; |
| 2946 } | 2953 } |
| 2947 | 2954 |
| 2948 protected: | 2955 protected: |
| 2949 void VerifySimulcastSettings(const VideoCodec& codec, | 2956 void VerifySimulcastSettings(const VideoCodec& codec, |
| 2950 size_t num_configured_streams, | 2957 size_t num_configured_streams, |
| 2951 size_t expected_num_streams) { | 2958 size_t expected_num_streams) { |
| 2952 cricket::VideoSendParameters parameters; | 2959 cricket::VideoSendParameters parameters; |
| 2953 parameters.codecs.push_back(codec); | 2960 parameters.codecs.push_back(codec); |
| 2954 ASSERT_TRUE(channel_->SetSendParameters(parameters)); | 2961 ASSERT_TRUE(channel_->SetSendParameters(parameters)); |
| (...skipping 116 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 3071 // Test that we normalize send codec format size in simulcast. | 3078 // Test that we normalize send codec format size in simulcast. |
| 3072 TEST_F(WebRtcVideoChannel2SimulcastTest, SetSendCodecsWithOddSizeInSimulcast) { | 3079 TEST_F(WebRtcVideoChannel2SimulcastTest, SetSendCodecsWithOddSizeInSimulcast) { |
| 3073 cricket::VideoCodec codec(kVp8Codec270p); | 3080 cricket::VideoCodec codec(kVp8Codec270p); |
| 3074 codec.width += 1; | 3081 codec.width += 1; |
| 3075 codec.height += 1; | 3082 codec.height += 1; |
| 3076 VerifySimulcastSettings(codec, 2, 2); | 3083 VerifySimulcastSettings(codec, 2, 2); |
| 3077 } | 3084 } |
| 3078 } // namespace cricket | 3085 } // namespace cricket |
| 3079 | 3086 |
| 3080 #endif // HAVE_WEBRTC_VIDEO | 3087 #endif // HAVE_WEBRTC_VIDEO |
| OLD | NEW |