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

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

Issue 2060403002: Add task queue to Call. (Closed) Base URL: https://chromium.googlesource.com/external/webrtc.git@move_getpadding
Patch Set: Fix audio thread check when adding audio to bitrateallocator. Created 4 years, 4 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 1135 matching lines...) Expand 10 before | Expand all | Expand 10 after
1146 } 1146 }
1147 1147
1148 int GetMaxEncoderBitrate(cricket::FakeVideoCapturer& capturer) { 1148 int GetMaxEncoderBitrate(cricket::FakeVideoCapturer& capturer) {
1149 EXPECT_TRUE(capturer.CaptureFrame()); 1149 EXPECT_TRUE(capturer.CaptureFrame());
1150 1150
1151 std::vector<FakeVideoSendStream*> streams = 1151 std::vector<FakeVideoSendStream*> streams =
1152 fake_call_->GetVideoSendStreams(); 1152 fake_call_->GetVideoSendStreams();
1153 EXPECT_TRUE(streams.size() > 0); 1153 EXPECT_TRUE(streams.size() > 0);
1154 FakeVideoSendStream* stream = streams[streams.size() - 1]; 1154 FakeVideoSendStream* stream = streams[streams.size() - 1];
1155 1155
1156 webrtc::VideoEncoderConfig encoder_config = stream->GetEncoderConfig(); 1156 webrtc::VideoEncoderConfig encoder_config =
1157 stream->GetEncoderConfig().Copy();
1157 EXPECT_EQ(1, encoder_config.streams.size()); 1158 EXPECT_EQ(1, encoder_config.streams.size());
1158 return encoder_config.streams[0].max_bitrate_bps; 1159 return encoder_config.streams[0].max_bitrate_bps;
1159 } 1160 }
1160 1161
1161 void SetAndExpectMaxBitrate(cricket::FakeVideoCapturer& capturer, 1162 void SetAndExpectMaxBitrate(cricket::FakeVideoCapturer& capturer,
1162 int global_max, 1163 int global_max,
1163 int stream_max, 1164 int stream_max,
1164 int expected_encoder_bitrate) { 1165 int expected_encoder_bitrate) {
1165 VideoSendParameters limited_send_params = send_parameters_; 1166 VideoSendParameters limited_send_params = send_parameters_;
1166 limited_send_params.max_bandwidth_bps = global_max; 1167 limited_send_params.max_bandwidth_bps = global_max;
(...skipping 471 matching lines...) Expand 10 before | Expand all | Expand 10 after
1638 1639
1639 EXPECT_TRUE(channel_->SetSend(true)); 1640 EXPECT_TRUE(channel_->SetSend(true));
1640 1641
1641 EXPECT_TRUE(capturer.CaptureFrame()); 1642 EXPECT_TRUE(capturer.CaptureFrame());
1642 ASSERT_EQ(1u, fake_call_->GetVideoSendStreams().size()); 1643 ASSERT_EQ(1u, fake_call_->GetVideoSendStreams().size());
1643 FakeVideoSendStream* send_stream = fake_call_->GetVideoSendStreams().front(); 1644 FakeVideoSendStream* send_stream = fake_call_->GetVideoSendStreams().front();
1644 1645
1645 EXPECT_EQ(1, send_stream->GetNumberOfSwappedFrames()); 1646 EXPECT_EQ(1, send_stream->GetNumberOfSwappedFrames());
1646 1647
1647 // Verify non-screencast settings. 1648 // Verify non-screencast settings.
1648 webrtc::VideoEncoderConfig encoder_config = send_stream->GetEncoderConfig(); 1649 webrtc::VideoEncoderConfig encoder_config =
1650 send_stream->GetEncoderConfig().Copy();
1649 EXPECT_EQ(webrtc::VideoEncoderConfig::ContentType::kRealtimeVideo, 1651 EXPECT_EQ(webrtc::VideoEncoderConfig::ContentType::kRealtimeVideo,
1650 encoder_config.content_type); 1652 encoder_config.content_type);
1651 EXPECT_EQ(codec.width, encoder_config.streams.front().width); 1653 EXPECT_EQ(codec.width, encoder_config.streams.front().width);
1652 EXPECT_EQ(codec.height, encoder_config.streams.front().height); 1654 EXPECT_EQ(codec.height, encoder_config.streams.front().height);
1653 EXPECT_EQ(0, encoder_config.min_transmit_bitrate_bps) 1655 EXPECT_EQ(0, encoder_config.min_transmit_bitrate_bps)
1654 << "Non-screenshare shouldn't use min-transmit bitrate."; 1656 << "Non-screenshare shouldn't use min-transmit bitrate.";
1655 1657
1656 EXPECT_TRUE(channel_->SetVideoSend(last_ssrc_, true, nullptr, nullptr)); 1658 EXPECT_TRUE(channel_->SetVideoSend(last_ssrc_, true, nullptr, nullptr));
1657 // Removing a capturer triggers a black frame to be sent. 1659 // Removing a capturer triggers a black frame to be sent.
1658 EXPECT_EQ(2, send_stream->GetNumberOfSwappedFrames()); 1660 EXPECT_EQ(2, send_stream->GetNumberOfSwappedFrames());
1659 VideoOptions screencast_options; 1661 VideoOptions screencast_options;
1660 screencast_options.is_screencast = rtc::Optional<bool>(true); 1662 screencast_options.is_screencast = rtc::Optional<bool>(true);
1661 EXPECT_TRUE( 1663 EXPECT_TRUE(
1662 channel_->SetVideoSend(last_ssrc_, true, &screencast_options, &capturer)); 1664 channel_->SetVideoSend(last_ssrc_, true, &screencast_options, &capturer));
1663 EXPECT_TRUE(capturer.CaptureFrame()); 1665 EXPECT_TRUE(capturer.CaptureFrame());
1664 // Send stream not recreated after option change. 1666 // Send stream not recreated after option change.
1665 ASSERT_EQ(send_stream, fake_call_->GetVideoSendStreams().front()); 1667 ASSERT_EQ(send_stream, fake_call_->GetVideoSendStreams().front());
1666 EXPECT_EQ(3, send_stream->GetNumberOfSwappedFrames()); 1668 EXPECT_EQ(3, send_stream->GetNumberOfSwappedFrames());
1667 1669
1668 // Verify screencast settings. 1670 // Verify screencast settings.
1669 encoder_config = send_stream->GetEncoderConfig(); 1671 encoder_config = send_stream->GetEncoderConfig().Copy();
1670 EXPECT_EQ(webrtc::VideoEncoderConfig::ContentType::kScreen, 1672 EXPECT_EQ(webrtc::VideoEncoderConfig::ContentType::kScreen,
1671 encoder_config.content_type); 1673 encoder_config.content_type);
1672 EXPECT_EQ(kScreenshareMinBitrateKbps * 1000, 1674 EXPECT_EQ(kScreenshareMinBitrateKbps * 1000,
1673 encoder_config.min_transmit_bitrate_bps); 1675 encoder_config.min_transmit_bitrate_bps);
1674 1676
1675 EXPECT_EQ(capture_format_hd.width, encoder_config.streams.front().width); 1677 EXPECT_EQ(capture_format_hd.width, encoder_config.streams.front().width);
1676 EXPECT_EQ(capture_format_hd.height, encoder_config.streams.front().height); 1678 EXPECT_EQ(capture_format_hd.height, encoder_config.streams.front().height);
1677 EXPECT_TRUE(encoder_config.streams[0].temporal_layer_thresholds_bps.empty()); 1679 EXPECT_TRUE(encoder_config.streams[0].temporal_layer_thresholds_bps.empty());
1678 1680
1679 EXPECT_TRUE(channel_->SetVideoSend(last_ssrc_, true, nullptr, nullptr)); 1681 EXPECT_TRUE(channel_->SetVideoSend(last_ssrc_, true, nullptr, nullptr));
1680 } 1682 }
1681 1683
1682 TEST_F(WebRtcVideoChannel2Test, NoRecreateStreamForScreencast) { 1684 TEST_F(WebRtcVideoChannel2Test, NoRecreateStreamForScreencast) {
1683 EXPECT_TRUE(channel_->SetSendParameters(send_parameters_)); 1685 EXPECT_TRUE(channel_->SetSendParameters(send_parameters_));
1684 ASSERT_TRUE( 1686 ASSERT_TRUE(
1685 channel_->AddSendStream(cricket::StreamParams::CreateLegacy(kSsrc))); 1687 channel_->AddSendStream(cricket::StreamParams::CreateLegacy(kSsrc)));
1686 EXPECT_TRUE(channel_->SetSend(true)); 1688 EXPECT_TRUE(channel_->SetSend(true));
1687 1689
1688 cricket::FakeVideoCapturer capturer; 1690 cricket::FakeVideoCapturer capturer;
1689 EXPECT_TRUE(channel_->SetVideoSend(kSsrc, true, nullptr, &capturer)); 1691 EXPECT_TRUE(channel_->SetVideoSend(kSsrc, true, nullptr, &capturer));
1690 EXPECT_EQ(cricket::CS_RUNNING, 1692 EXPECT_EQ(cricket::CS_RUNNING,
1691 capturer.Start(capturer.GetSupportedFormats()->front())); 1693 capturer.Start(capturer.GetSupportedFormats()->front()));
1692 EXPECT_TRUE(capturer.CaptureFrame()); 1694 EXPECT_TRUE(capturer.CaptureFrame());
1693 1695
1694 ASSERT_EQ(1, fake_call_->GetNumCreatedSendStreams()); 1696 ASSERT_EQ(1, fake_call_->GetNumCreatedSendStreams());
1695 FakeVideoSendStream* stream = fake_call_->GetVideoSendStreams().front(); 1697 FakeVideoSendStream* stream = fake_call_->GetVideoSendStreams().front();
1696 webrtc::VideoEncoderConfig encoder_config = stream->GetEncoderConfig(); 1698 webrtc::VideoEncoderConfig encoder_config = stream->GetEncoderConfig().Copy();
1697 EXPECT_EQ(webrtc::VideoEncoderConfig::ContentType::kRealtimeVideo, 1699 EXPECT_EQ(webrtc::VideoEncoderConfig::ContentType::kRealtimeVideo,
1698 encoder_config.content_type); 1700 encoder_config.content_type);
1699 1701
1700 EXPECT_EQ(1, stream->GetNumberOfSwappedFrames()); 1702 EXPECT_EQ(1, stream->GetNumberOfSwappedFrames());
1701 1703
1702 /* Switch to screencast source. We expect a reconfigure of the 1704 /* Switch to screencast source. We expect a reconfigure of the
1703 * encoder, but no change of the send stream. */ 1705 * encoder, but no change of the send stream. */
1704 struct VideoOptions video_options; 1706 struct VideoOptions video_options;
1705 video_options.is_screencast = rtc::Optional<bool>(true); 1707 video_options.is_screencast = rtc::Optional<bool>(true);
1706 EXPECT_TRUE(channel_->SetVideoSend(kSsrc, true, &video_options, &capturer)); 1708 EXPECT_TRUE(channel_->SetVideoSend(kSsrc, true, &video_options, &capturer));
1707 1709
1708 EXPECT_TRUE(capturer.CaptureFrame()); 1710 EXPECT_TRUE(capturer.CaptureFrame());
1709 ASSERT_EQ(1, fake_call_->GetNumCreatedSendStreams()); 1711 ASSERT_EQ(1, fake_call_->GetNumCreatedSendStreams());
1710 ASSERT_EQ(stream, fake_call_->GetVideoSendStreams().front()); 1712 ASSERT_EQ(stream, fake_call_->GetVideoSendStreams().front());
1711 EXPECT_EQ(2, stream->GetNumberOfSwappedFrames()); 1713 EXPECT_EQ(2, stream->GetNumberOfSwappedFrames());
1712 1714
1713 encoder_config = stream->GetEncoderConfig(); 1715 encoder_config = stream->GetEncoderConfig().Copy();
1714 EXPECT_EQ(webrtc::VideoEncoderConfig::ContentType::kScreen, 1716 EXPECT_EQ(webrtc::VideoEncoderConfig::ContentType::kScreen,
1715 encoder_config.content_type); 1717 encoder_config.content_type);
1716 1718
1717 /* Switch back. */ 1719 /* Switch back. */
1718 video_options.is_screencast = rtc::Optional<bool>(false); 1720 video_options.is_screencast = rtc::Optional<bool>(false);
1719 EXPECT_TRUE(channel_->SetVideoSend(kSsrc, true, &video_options, &capturer)); 1721 EXPECT_TRUE(channel_->SetVideoSend(kSsrc, true, &video_options, &capturer));
1720 1722
1721 EXPECT_TRUE(capturer.CaptureFrame()); 1723 EXPECT_TRUE(capturer.CaptureFrame());
1722 ASSERT_EQ(1, fake_call_->GetNumCreatedSendStreams()); 1724 ASSERT_EQ(1, fake_call_->GetNumCreatedSendStreams());
1723 ASSERT_EQ(stream, fake_call_->GetVideoSendStreams().front()); 1725 ASSERT_EQ(stream, fake_call_->GetVideoSendStreams().front());
1724 EXPECT_EQ(3, stream->GetNumberOfSwappedFrames()); 1726 EXPECT_EQ(3, stream->GetNumberOfSwappedFrames());
1725 1727
1726 encoder_config = stream->GetEncoderConfig(); 1728 encoder_config = stream->GetEncoderConfig().Copy();
1727 EXPECT_EQ(webrtc::VideoEncoderConfig::ContentType::kRealtimeVideo, 1729 EXPECT_EQ(webrtc::VideoEncoderConfig::ContentType::kRealtimeVideo,
1728 encoder_config.content_type); 1730 encoder_config.content_type);
1729 1731
1730 EXPECT_TRUE(channel_->SetVideoSend(kSsrc, true, nullptr, nullptr)); 1732 EXPECT_TRUE(channel_->SetVideoSend(kSsrc, true, nullptr, nullptr));
1731 } 1733 }
1732 1734
1733 TEST_F(WebRtcVideoChannel2Test, 1735 TEST_F(WebRtcVideoChannel2Test,
1734 ConferenceModeScreencastConfiguresTemporalLayer) { 1736 ConferenceModeScreencastConfiguresTemporalLayer) {
1735 static const int kConferenceScreencastTemporalBitrateBps = 1737 static const int kConferenceScreencastTemporalBitrateBps =
1736 ScreenshareLayerConfig::GetDefault().tl0_bitrate_kbps * 1000; 1738 ScreenshareLayerConfig::GetDefault().tl0_bitrate_kbps * 1000;
1737 send_parameters_.conference_mode = true; 1739 send_parameters_.conference_mode = true;
1738 channel_->SetSendParameters(send_parameters_); 1740 channel_->SetSendParameters(send_parameters_);
1739 1741
1740 AddSendStream(); 1742 AddSendStream();
1741 VideoOptions options; 1743 VideoOptions options;
1742 options.is_screencast = rtc::Optional<bool>(true); 1744 options.is_screencast = rtc::Optional<bool>(true);
1743 cricket::FakeVideoCapturer capturer; 1745 cricket::FakeVideoCapturer capturer;
1744 EXPECT_TRUE(channel_->SetVideoSend(last_ssrc_, true, &options, &capturer)); 1746 EXPECT_TRUE(channel_->SetVideoSend(last_ssrc_, true, &options, &capturer));
1745 cricket::VideoFormat capture_format_hd = 1747 cricket::VideoFormat capture_format_hd =
1746 capturer.GetSupportedFormats()->front(); 1748 capturer.GetSupportedFormats()->front();
1747 EXPECT_EQ(cricket::CS_RUNNING, capturer.Start(capture_format_hd)); 1749 EXPECT_EQ(cricket::CS_RUNNING, capturer.Start(capture_format_hd));
1748 1750
1749 EXPECT_TRUE(channel_->SetSend(true)); 1751 EXPECT_TRUE(channel_->SetSend(true));
1750 1752
1751 EXPECT_TRUE(capturer.CaptureFrame()); 1753 EXPECT_TRUE(capturer.CaptureFrame());
1752 ASSERT_EQ(1u, fake_call_->GetVideoSendStreams().size()); 1754 ASSERT_EQ(1u, fake_call_->GetVideoSendStreams().size());
1753 FakeVideoSendStream* send_stream = fake_call_->GetVideoSendStreams().front(); 1755 FakeVideoSendStream* send_stream = fake_call_->GetVideoSendStreams().front();
1754 1756
1755 webrtc::VideoEncoderConfig encoder_config = send_stream->GetEncoderConfig(); 1757 webrtc::VideoEncoderConfig encoder_config =
1758 send_stream->GetEncoderConfig().Copy();
1756 1759
1757 // Verify screencast settings. 1760 // Verify screencast settings.
1758 encoder_config = send_stream->GetEncoderConfig(); 1761 encoder_config = send_stream->GetEncoderConfig().Copy();
1759 EXPECT_EQ(webrtc::VideoEncoderConfig::ContentType::kScreen, 1762 EXPECT_EQ(webrtc::VideoEncoderConfig::ContentType::kScreen,
1760 encoder_config.content_type); 1763 encoder_config.content_type);
1761 ASSERT_EQ(1u, encoder_config.streams.size()); 1764 ASSERT_EQ(1u, encoder_config.streams.size());
1762 ASSERT_EQ(1u, encoder_config.streams[0].temporal_layer_thresholds_bps.size()); 1765 ASSERT_EQ(1u, encoder_config.streams[0].temporal_layer_thresholds_bps.size());
1763 EXPECT_EQ(kConferenceScreencastTemporalBitrateBps, 1766 EXPECT_EQ(kConferenceScreencastTemporalBitrateBps,
1764 encoder_config.streams[0].temporal_layer_thresholds_bps[0]); 1767 encoder_config.streams[0].temporal_layer_thresholds_bps[0]);
1765 1768
1766 EXPECT_TRUE(channel_->SetVideoSend(last_ssrc_, true, nullptr, nullptr)); 1769 EXPECT_TRUE(channel_->SetVideoSend(last_ssrc_, true, nullptr, nullptr));
1767 } 1770 }
1768 1771
(...skipping 534 matching lines...) Expand 10 before | Expand all | Expand 10 after
2303 2306
2304 VideoCodec codec; 2307 VideoCodec codec;
2305 EXPECT_TRUE(channel_->GetSendCodec(&codec)); 2308 EXPECT_TRUE(channel_->GetSendCodec(&codec));
2306 EXPECT_TRUE(codec.Matches(engine_.codecs()[0])); 2309 EXPECT_TRUE(codec.Matches(engine_.codecs()[0]));
2307 2310
2308 // Using a RTX setup to verify that the default RTX payload type is good. 2311 // Using a RTX setup to verify that the default RTX payload type is good.
2309 const std::vector<uint32_t> ssrcs = MAKE_VECTOR(kSsrcs1); 2312 const std::vector<uint32_t> ssrcs = MAKE_VECTOR(kSsrcs1);
2310 const std::vector<uint32_t> rtx_ssrcs = MAKE_VECTOR(kRtxSsrcs1); 2313 const std::vector<uint32_t> rtx_ssrcs = MAKE_VECTOR(kRtxSsrcs1);
2311 FakeVideoSendStream* stream = AddSendStream( 2314 FakeVideoSendStream* stream = AddSendStream(
2312 cricket::CreateSimWithRtxStreamParams("cname", ssrcs, rtx_ssrcs)); 2315 cricket::CreateSimWithRtxStreamParams("cname", ssrcs, rtx_ssrcs));
2313 webrtc::VideoSendStream::Config config = stream->GetConfig(); 2316 webrtc::VideoSendStream::Config config = stream->GetConfig().Copy();
2314 2317
2315 // Make sure NACK and FEC are enabled on the correct payload types. 2318 // Make sure NACK and FEC are enabled on the correct payload types.
2316 EXPECT_EQ(1000, config.rtp.nack.rtp_history_ms); 2319 EXPECT_EQ(1000, config.rtp.nack.rtp_history_ms);
2317 EXPECT_EQ(default_ulpfec_codec_.id, config.rtp.fec.ulpfec_payload_type); 2320 EXPECT_EQ(default_ulpfec_codec_.id, config.rtp.fec.ulpfec_payload_type);
2318 EXPECT_EQ(default_red_codec_.id, config.rtp.fec.red_payload_type); 2321 EXPECT_EQ(default_red_codec_.id, config.rtp.fec.red_payload_type);
2319 2322
2320 EXPECT_EQ(1u, config.rtp.rtx.ssrcs.size()); 2323 EXPECT_EQ(1u, config.rtp.rtx.ssrcs.size());
2321 EXPECT_EQ(kRtxSsrcs1[0], config.rtp.rtx.ssrcs[0]); 2324 EXPECT_EQ(kRtxSsrcs1[0], config.rtp.rtx.ssrcs[0]);
2322 VerifySendStreamHasRtxTypes(config, default_apt_rtx_types_); 2325 VerifySendStreamHasRtxTypes(config, default_apt_rtx_types_);
2323 // TODO(juberti): Check RTCP, PLI, TMMBR. 2326 // TODO(juberti): Check RTCP, PLI, TMMBR.
2324 } 2327 }
2325 2328
2326 TEST_F(WebRtcVideoChannel2Test, SetSendCodecsWithoutFec) { 2329 TEST_F(WebRtcVideoChannel2Test, SetSendCodecsWithoutFec) {
2327 cricket::VideoSendParameters parameters; 2330 cricket::VideoSendParameters parameters;
2328 parameters.codecs.push_back(kVp8Codec); 2331 parameters.codecs.push_back(kVp8Codec);
2329 ASSERT_TRUE(channel_->SetSendParameters(parameters)); 2332 ASSERT_TRUE(channel_->SetSendParameters(parameters));
2330 2333
2331 FakeVideoSendStream* stream = AddSendStream(); 2334 FakeVideoSendStream* stream = AddSendStream();
2332 webrtc::VideoSendStream::Config config = stream->GetConfig(); 2335 webrtc::VideoSendStream::Config config = stream->GetConfig().Copy();
2333 2336
2334 EXPECT_EQ(-1, config.rtp.fec.ulpfec_payload_type); 2337 EXPECT_EQ(-1, config.rtp.fec.ulpfec_payload_type);
2335 EXPECT_EQ(-1, config.rtp.fec.red_payload_type); 2338 EXPECT_EQ(-1, config.rtp.fec.red_payload_type);
2336 } 2339 }
2337 2340
2338 TEST_F(WebRtcVideoChannel2Test, 2341 TEST_F(WebRtcVideoChannel2Test,
2339 SetSendCodecRejectsRtxWithoutAssociatedPayloadType) { 2342 SetSendCodecRejectsRtxWithoutAssociatedPayloadType) {
2340 cricket::VideoSendParameters parameters; 2343 cricket::VideoSendParameters parameters;
2341 cricket::VideoCodec rtx_codec(96, "rtx", 0, 0, 0); 2344 cricket::VideoCodec rtx_codec(96, "rtx", 0, 0, 0);
2342 parameters.codecs.push_back(rtx_codec); 2345 parameters.codecs.push_back(rtx_codec);
(...skipping 18 matching lines...) Expand all
2361 << "RTX without matching video codec should be rejected."; 2364 << "RTX without matching video codec should be rejected.";
2362 } 2365 }
2363 2366
2364 TEST_F(WebRtcVideoChannel2Test, SetSendCodecsWithoutFecDisablesFec) { 2367 TEST_F(WebRtcVideoChannel2Test, SetSendCodecsWithoutFecDisablesFec) {
2365 cricket::VideoSendParameters parameters; 2368 cricket::VideoSendParameters parameters;
2366 parameters.codecs.push_back(kVp8Codec); 2369 parameters.codecs.push_back(kVp8Codec);
2367 parameters.codecs.push_back(kUlpfecCodec); 2370 parameters.codecs.push_back(kUlpfecCodec);
2368 ASSERT_TRUE(channel_->SetSendParameters(parameters)); 2371 ASSERT_TRUE(channel_->SetSendParameters(parameters));
2369 2372
2370 FakeVideoSendStream* stream = AddSendStream(); 2373 FakeVideoSendStream* stream = AddSendStream();
2371 webrtc::VideoSendStream::Config config = stream->GetConfig(); 2374 webrtc::VideoSendStream::Config config = stream->GetConfig().Copy();
2372 2375
2373 EXPECT_EQ(kUlpfecCodec.id, config.rtp.fec.ulpfec_payload_type); 2376 EXPECT_EQ(kUlpfecCodec.id, config.rtp.fec.ulpfec_payload_type);
2374 2377
2375 parameters.codecs.pop_back(); 2378 parameters.codecs.pop_back();
2376 ASSERT_TRUE(channel_->SetSendParameters(parameters)); 2379 ASSERT_TRUE(channel_->SetSendParameters(parameters));
2377 stream = fake_call_->GetVideoSendStreams()[0]; 2380 stream = fake_call_->GetVideoSendStreams()[0];
2378 ASSERT_TRUE(stream != NULL); 2381 ASSERT_TRUE(stream != NULL);
2379 config = stream->GetConfig(); 2382 config = stream->GetConfig().Copy();
2380 EXPECT_EQ(-1, config.rtp.fec.ulpfec_payload_type) 2383 EXPECT_EQ(-1, config.rtp.fec.ulpfec_payload_type)
2381 << "SetSendCodec without FEC should disable current FEC."; 2384 << "SetSendCodec without FEC should disable current FEC.";
2382 } 2385 }
2383 2386
2384 TEST_F(WebRtcVideoChannel2Test, SetSendCodecsChangesExistingStreams) { 2387 TEST_F(WebRtcVideoChannel2Test, SetSendCodecsChangesExistingStreams) {
2385 cricket::VideoSendParameters parameters; 2388 cricket::VideoSendParameters parameters;
2386 parameters.codecs.push_back(kVp8Codec720p); 2389 parameters.codecs.push_back(kVp8Codec720p);
2387 ASSERT_TRUE(channel_->SetSendParameters(parameters)); 2390 ASSERT_TRUE(channel_->SetSendParameters(parameters));
2388 channel_->SetSend(true); 2391 channel_->SetSend(true);
2389 2392
(...skipping 1458 matching lines...) Expand 10 before | Expand all | Expand 10 after
3848 } 3851 }
3849 3852
3850 // Test that we normalize send codec format size in simulcast. 3853 // Test that we normalize send codec format size in simulcast.
3851 TEST_F(WebRtcVideoChannel2SimulcastTest, SetSendCodecsWithOddSizeInSimulcast) { 3854 TEST_F(WebRtcVideoChannel2SimulcastTest, SetSendCodecsWithOddSizeInSimulcast) {
3852 cricket::VideoCodec codec(kVp8Codec270p); 3855 cricket::VideoCodec codec(kVp8Codec270p);
3853 codec.width += 1; 3856 codec.width += 1;
3854 codec.height += 1; 3857 codec.height += 1;
3855 VerifySimulcastSettings(codec, 2, 2); 3858 VerifySimulcastSettings(codec, 2, 2);
3856 } 3859 }
3857 } // namespace cricket 3860 } // namespace cricket
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698