OLD | NEW |
1 /* | 1 /* |
2 * libjingle | 2 * libjingle |
3 * Copyright 2004 Google Inc. | 3 * Copyright 2004 Google Inc. |
4 * | 4 * |
5 * Redistribution and use in source and binary forms, with or without | 5 * Redistribution and use in source and binary forms, with or without |
6 * modification, are permitted provided that the following conditions are met: | 6 * modification, are permitted provided that the following conditions are met: |
7 * | 7 * |
8 * 1. Redistributions of source code must retain the above copyright notice, | 8 * 1. Redistributions of source code must retain the above copyright notice, |
9 * this list of conditions and the following disclaimer. | 9 * this list of conditions and the following disclaimer. |
10 * 2. Redistributions in binary form must reproduce the above copyright notice, | 10 * 2. Redistributions in binary form must reproduce the above copyright notice, |
(...skipping 1004 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1015 void TestReceiveUnsignalledSsrcPacket(uint8_t payload_type, | 1015 void TestReceiveUnsignalledSsrcPacket(uint8_t payload_type, |
1016 bool expect_created_receive_stream); | 1016 bool expect_created_receive_stream); |
1017 | 1017 |
1018 FakeVideoSendStream* SetDenoisingOption(bool enabled) { | 1018 FakeVideoSendStream* SetDenoisingOption(bool enabled) { |
1019 VideoOptions options; | 1019 VideoOptions options; |
1020 options.video_noise_reduction.Set(enabled); | 1020 options.video_noise_reduction.Set(enabled); |
1021 channel_->SetOptions(options); | 1021 channel_->SetOptions(options); |
1022 return fake_call_->GetVideoSendStreams().back(); | 1022 return fake_call_->GetVideoSendStreams().back(); |
1023 } | 1023 } |
1024 | 1024 |
1025 FakeVideoSendStream* SetUpSimulcast(bool enabled) { | 1025 FakeVideoSendStream* SetUpSimulcast(bool enabled, bool with_rtx) { |
| 1026 const int kRtxSsrcOffset = 0xDEADBEEF; |
1026 last_ssrc_ += 3; | 1027 last_ssrc_ += 3; |
1027 if (enabled) { | 1028 std::vector<uint32_t> ssrcs; |
1028 std::vector<uint32_t> ssrcs; | 1029 std::vector<uint32_t> rtx_ssrcs; |
1029 ssrcs.push_back(last_ssrc_); | 1030 uint32_t num_streams = enabled ? 3 : 1; |
1030 ssrcs.push_back(last_ssrc_ + 1); | 1031 for (uint32_t i = 0; i < num_streams; ++i) { |
1031 ssrcs.push_back(last_ssrc_ + 2); | 1032 uint32_t ssrc = last_ssrc_ + i; |
1032 return AddSendStream(CreateSimStreamParams("cname", ssrcs)); | 1033 ssrcs.push_back(ssrc); |
1033 } else { | 1034 if (with_rtx) { |
1034 return AddSendStream(StreamParams::CreateLegacy(last_ssrc_)); | 1035 rtx_ssrcs.push_back(ssrc + kRtxSsrcOffset); |
| 1036 } |
1035 } | 1037 } |
| 1038 if (with_rtx) { |
| 1039 return AddSendStream( |
| 1040 cricket::CreateSimWithRtxStreamParams("cname", ssrcs, rtx_ssrcs)); |
| 1041 } |
| 1042 return AddSendStream(CreateSimStreamParams("cname", ssrcs)); |
1036 } | 1043 } |
1037 | 1044 |
1038 FakeCall* fake_call_; | 1045 FakeCall* fake_call_; |
1039 rtc::scoped_ptr<VideoMediaChannel> channel_; | 1046 rtc::scoped_ptr<VideoMediaChannel> channel_; |
1040 uint32 last_ssrc_; | 1047 uint32 last_ssrc_; |
1041 }; | 1048 }; |
1042 | 1049 |
1043 TEST_F(WebRtcVideoChannel2Test, SetsSyncGroupFromSyncLabel) { | 1050 TEST_F(WebRtcVideoChannel2Test, SetsSyncGroupFromSyncLabel) { |
1044 const uint32 kVideoSsrc = 123; | 1051 const uint32 kVideoSsrc = 123; |
1045 const std::string kSyncLabel = "AvSyncLabel"; | 1052 const std::string kSyncLabel = "AvSyncLabel"; |
(...skipping 517 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1563 webrtc::VideoCodecVP8 vp8_settings; | 1570 webrtc::VideoCodecVP8 vp8_settings; |
1564 ASSERT_TRUE(stream->GetVp8Settings(&vp8_settings)) << "No VP8 config set."; | 1571 ASSERT_TRUE(stream->GetVp8Settings(&vp8_settings)) << "No VP8 config set."; |
1565 EXPECT_TRUE(vp8_settings.denoisingOn); | 1572 EXPECT_TRUE(vp8_settings.denoisingOn); |
1566 } | 1573 } |
1567 | 1574 |
1568 TEST_F(WebRtcVideoChannel2Test, VerifyVp8SpecificSettings) { | 1575 TEST_F(WebRtcVideoChannel2Test, VerifyVp8SpecificSettings) { |
1569 std::vector<cricket::VideoCodec> codecs; | 1576 std::vector<cricket::VideoCodec> codecs; |
1570 codecs.push_back(kVp8Codec720p); | 1577 codecs.push_back(kVp8Codec720p); |
1571 ASSERT_TRUE(channel_->SetSendCodecs(codecs)); | 1578 ASSERT_TRUE(channel_->SetSendCodecs(codecs)); |
1572 | 1579 |
1573 FakeVideoSendStream* stream = SetUpSimulcast(false); | 1580 // Single-stream settings should apply with RTX as well (verifies that we |
| 1581 // check number of regular SSRCs and not StreamParams::ssrcs which contains |
| 1582 // both RTX and regular SSRCs). |
| 1583 FakeVideoSendStream* stream = SetUpSimulcast(false, true); |
1574 | 1584 |
1575 cricket::FakeVideoCapturer capturer; | 1585 cricket::FakeVideoCapturer capturer; |
1576 capturer.SetScreencast(false); | 1586 capturer.SetScreencast(false); |
1577 EXPECT_EQ(cricket::CS_RUNNING, | 1587 EXPECT_EQ(cricket::CS_RUNNING, |
1578 capturer.Start(capturer.GetSupportedFormats()->front())); | 1588 capturer.Start(capturer.GetSupportedFormats()->front())); |
1579 EXPECT_TRUE(channel_->SetCapturer(last_ssrc_, &capturer)); | 1589 EXPECT_TRUE(channel_->SetCapturer(last_ssrc_, &capturer)); |
1580 channel_->SetSend(true); | 1590 channel_->SetSend(true); |
1581 | 1591 |
1582 EXPECT_TRUE(capturer.CaptureFrame()); | 1592 EXPECT_TRUE(capturer.CaptureFrame()); |
1583 | 1593 |
1584 stream = SetDenoisingOption(false); | 1594 stream = SetDenoisingOption(false); |
1585 | 1595 |
1586 webrtc::VideoCodecVP8 vp8_settings; | 1596 webrtc::VideoCodecVP8 vp8_settings; |
1587 ASSERT_TRUE(stream->GetVp8Settings(&vp8_settings)) << "No VP8 config set."; | 1597 ASSERT_TRUE(stream->GetVp8Settings(&vp8_settings)) << "No VP8 config set."; |
1588 EXPECT_FALSE(vp8_settings.denoisingOn); | 1598 EXPECT_FALSE(vp8_settings.denoisingOn); |
1589 EXPECT_TRUE(vp8_settings.automaticResizeOn); | 1599 EXPECT_TRUE(vp8_settings.automaticResizeOn); |
1590 EXPECT_TRUE(vp8_settings.frameDroppingOn); | 1600 EXPECT_TRUE(vp8_settings.frameDroppingOn); |
1591 | 1601 |
1592 stream = SetDenoisingOption(true); | 1602 stream = SetDenoisingOption(true); |
1593 | 1603 |
1594 ASSERT_TRUE(stream->GetVp8Settings(&vp8_settings)) << "No VP8 config set."; | 1604 ASSERT_TRUE(stream->GetVp8Settings(&vp8_settings)) << "No VP8 config set."; |
1595 EXPECT_TRUE(vp8_settings.denoisingOn); | 1605 EXPECT_TRUE(vp8_settings.denoisingOn); |
1596 EXPECT_TRUE(vp8_settings.automaticResizeOn); | 1606 EXPECT_TRUE(vp8_settings.automaticResizeOn); |
1597 EXPECT_TRUE(vp8_settings.frameDroppingOn); | 1607 EXPECT_TRUE(vp8_settings.frameDroppingOn); |
1598 | 1608 |
1599 EXPECT_TRUE(channel_->SetCapturer(last_ssrc_, NULL)); | 1609 EXPECT_TRUE(channel_->SetCapturer(last_ssrc_, NULL)); |
1600 stream = SetUpSimulcast(true); | 1610 stream = SetUpSimulcast(true, false); |
1601 EXPECT_TRUE(channel_->SetCapturer(last_ssrc_, &capturer)); | 1611 EXPECT_TRUE(channel_->SetCapturer(last_ssrc_, &capturer)); |
1602 channel_->SetSend(true); | 1612 channel_->SetSend(true); |
1603 EXPECT_TRUE(capturer.CaptureFrame()); | 1613 EXPECT_TRUE(capturer.CaptureFrame()); |
1604 | 1614 |
1605 EXPECT_EQ(3, stream->GetVideoStreams().size()); | 1615 EXPECT_EQ(3, stream->GetVideoStreams().size()); |
1606 ASSERT_TRUE(stream->GetVp8Settings(&vp8_settings)) << "No VP8 config set."; | 1616 ASSERT_TRUE(stream->GetVp8Settings(&vp8_settings)) << "No VP8 config set."; |
1607 // Autmatic resize off when using simulcast. | 1617 // Autmatic resize off when using simulcast. |
1608 EXPECT_FALSE(vp8_settings.automaticResizeOn); | 1618 EXPECT_FALSE(vp8_settings.automaticResizeOn); |
1609 EXPECT_TRUE(vp8_settings.frameDroppingOn); | 1619 EXPECT_TRUE(vp8_settings.frameDroppingOn); |
1610 | 1620 |
(...skipping 40 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1651 } | 1661 } |
1652 | 1662 |
1653 cricket::FakeWebRtcVideoEncoderFactory encoder_factory_; | 1663 cricket::FakeWebRtcVideoEncoderFactory encoder_factory_; |
1654 }; | 1664 }; |
1655 | 1665 |
1656 TEST_F(Vp9SettingsTest, VerifyVp9SpecificSettings) { | 1666 TEST_F(Vp9SettingsTest, VerifyVp9SpecificSettings) { |
1657 std::vector<cricket::VideoCodec> codecs; | 1667 std::vector<cricket::VideoCodec> codecs; |
1658 codecs.push_back(kVp9Codec); | 1668 codecs.push_back(kVp9Codec); |
1659 ASSERT_TRUE(channel_->SetSendCodecs(codecs)); | 1669 ASSERT_TRUE(channel_->SetSendCodecs(codecs)); |
1660 | 1670 |
1661 FakeVideoSendStream* stream = SetUpSimulcast(false); | 1671 FakeVideoSendStream* stream = SetUpSimulcast(false, false); |
1662 | 1672 |
1663 cricket::FakeVideoCapturer capturer; | 1673 cricket::FakeVideoCapturer capturer; |
1664 capturer.SetScreencast(false); | 1674 capturer.SetScreencast(false); |
1665 EXPECT_EQ(cricket::CS_RUNNING, | 1675 EXPECT_EQ(cricket::CS_RUNNING, |
1666 capturer.Start(capturer.GetSupportedFormats()->front())); | 1676 capturer.Start(capturer.GetSupportedFormats()->front())); |
1667 EXPECT_TRUE(channel_->SetCapturer(last_ssrc_, &capturer)); | 1677 EXPECT_TRUE(channel_->SetCapturer(last_ssrc_, &capturer)); |
1668 channel_->SetSend(true); | 1678 channel_->SetSend(true); |
1669 | 1679 |
1670 EXPECT_TRUE(capturer.CaptureFrame()); | 1680 EXPECT_TRUE(capturer.CaptureFrame()); |
1671 | 1681 |
(...skipping 1508 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
3180 // Ensures that the correct settings are applied to the codec when two temporal | 3190 // Ensures that the correct settings are applied to the codec when two temporal |
3181 // layer screencasting is enabled, and that the correct simulcast settings are | 3191 // layer screencasting is enabled, and that the correct simulcast settings are |
3182 // reapplied when disabling screencasting. | 3192 // reapplied when disabling screencasting. |
3183 TEST_F(WebRtcVideoChannel2SimulcastTest, | 3193 TEST_F(WebRtcVideoChannel2SimulcastTest, |
3184 DISABLED_TwoTemporalLayerScreencastSettings) { | 3194 DISABLED_TwoTemporalLayerScreencastSettings) { |
3185 // TODO(pbos): Implement. | 3195 // TODO(pbos): Implement. |
3186 FAIL() << "Not implemented."; | 3196 FAIL() << "Not implemented."; |
3187 } | 3197 } |
3188 | 3198 |
3189 } // namespace cricket | 3199 } // namespace cricket |
OLD | NEW |