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

Side by Side Diff: talk/media/base/videoengine_unittest.h

Issue 1430433004: Replace rtc::cricket::Settable with rtc::Maybe (Closed) Base URL: https://chromium.googlesource.com/external/webrtc.git@master
Patch Set: rebase Created 5 years, 1 month 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 | « talk/media/base/mediachannel.h ('k') | talk/media/webrtc/webrtcvideoengine2.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 * libjingle 2 * libjingle
3 * Copyright 2014 Google Inc. 3 * Copyright 2014 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 857 matching lines...) Expand 10 before | Expand all | Expand 10 after
868 EXPECT_TRUE(channel_->GetStats(&info)); 868 EXPECT_TRUE(channel_->GetStats(&info));
869 return info.receivers[i]; 869 return info.receivers[i];
870 } 870 }
871 871
872 // Test that stats work properly for a conf call with multiple recv streams. 872 // Test that stats work properly for a conf call with multiple recv streams.
873 void GetStatsMultipleRecvStreams() { 873 void GetStatsMultipleRecvStreams() {
874 cricket::FakeVideoRenderer renderer1, renderer2; 874 cricket::FakeVideoRenderer renderer1, renderer2;
875 EXPECT_TRUE(SetOneCodec(DefaultCodec())); 875 EXPECT_TRUE(SetOneCodec(DefaultCodec()));
876 cricket::VideoSendParameters parameters; 876 cricket::VideoSendParameters parameters;
877 parameters.codecs.push_back(DefaultCodec()); 877 parameters.codecs.push_back(DefaultCodec());
878 parameters.options.conference_mode.Set(true); 878 parameters.options.conference_mode = rtc::Maybe<bool>(true);
879 EXPECT_TRUE(channel_->SetSendParameters(parameters)); 879 EXPECT_TRUE(channel_->SetSendParameters(parameters));
880 EXPECT_TRUE(SetSend(true)); 880 EXPECT_TRUE(SetSend(true));
881 EXPECT_TRUE(channel_->AddRecvStream( 881 EXPECT_TRUE(channel_->AddRecvStream(
882 cricket::StreamParams::CreateLegacy(1))); 882 cricket::StreamParams::CreateLegacy(1)));
883 EXPECT_TRUE(channel_->AddRecvStream( 883 EXPECT_TRUE(channel_->AddRecvStream(
884 cricket::StreamParams::CreateLegacy(2))); 884 cricket::StreamParams::CreateLegacy(2)));
885 EXPECT_TRUE(channel_->SetRenderer(1, &renderer1)); 885 EXPECT_TRUE(channel_->SetRenderer(1, &renderer1));
886 EXPECT_TRUE(channel_->SetRenderer(2, &renderer2)); 886 EXPECT_TRUE(channel_->SetRenderer(2, &renderer2));
887 EXPECT_EQ(0, renderer1.num_rendered_frames()); 887 EXPECT_EQ(0, renderer1.num_rendered_frames());
888 EXPECT_EQ(0, renderer2.num_rendered_frames()); 888 EXPECT_EQ(0, renderer2.num_rendered_frames());
(...skipping 30 matching lines...) Expand all
919 EXPECT_EQ(DefaultCodec().height, GetReceiverStats(i).frame_height); 919 EXPECT_EQ(DefaultCodec().height, GetReceiverStats(i).frame_height);
920 } 920 }
921 } 921 }
922 // Test that stats work properly for a conf call with multiple send streams. 922 // Test that stats work properly for a conf call with multiple send streams.
923 void GetStatsMultipleSendStreams() { 923 void GetStatsMultipleSendStreams() {
924 // Normal setup; note that we set the SSRC explicitly to ensure that 924 // Normal setup; note that we set the SSRC explicitly to ensure that
925 // it will come first in the senders map. 925 // it will come first in the senders map.
926 EXPECT_TRUE(SetOneCodec(DefaultCodec())); 926 EXPECT_TRUE(SetOneCodec(DefaultCodec()));
927 cricket::VideoSendParameters parameters; 927 cricket::VideoSendParameters parameters;
928 parameters.codecs.push_back(DefaultCodec()); 928 parameters.codecs.push_back(DefaultCodec());
929 parameters.options.conference_mode.Set(true); 929 parameters.options.conference_mode = rtc::Maybe<bool>(true);
930 EXPECT_TRUE(channel_->SetSendParameters(parameters)); 930 EXPECT_TRUE(channel_->SetSendParameters(parameters));
931 EXPECT_TRUE(channel_->AddRecvStream( 931 EXPECT_TRUE(channel_->AddRecvStream(
932 cricket::StreamParams::CreateLegacy(kSsrc))); 932 cricket::StreamParams::CreateLegacy(kSsrc)));
933 EXPECT_TRUE(channel_->SetRenderer(kSsrc, &renderer_)); 933 EXPECT_TRUE(channel_->SetRenderer(kSsrc, &renderer_));
934 channel_->UpdateAspectRatio(640, 400); 934 channel_->UpdateAspectRatio(640, 400);
935 EXPECT_TRUE(SetSend(true)); 935 EXPECT_TRUE(SetSend(true));
936 EXPECT_TRUE(SendFrame()); 936 EXPECT_TRUE(SendFrame());
937 EXPECT_TRUE_WAIT(NumRtpPackets() > 0, kTimeout); 937 EXPECT_TRUE_WAIT(NumRtpPackets() > 0, kTimeout);
938 EXPECT_FRAME_WAIT(1, DefaultCodec().width, DefaultCodec().height, kTimeout); 938 EXPECT_FRAME_WAIT(1, DefaultCodec().width, DefaultCodec().height, kTimeout);
939 939
(...skipping 289 matching lines...) Expand 10 before | Expand all | Expand 10 after
1229 // Detach |renderer1| before exit as there might be frames come late. 1229 // Detach |renderer1| before exit as there might be frames come late.
1230 EXPECT_TRUE(channel_->SetRenderer(kSsrc, NULL)); 1230 EXPECT_TRUE(channel_->SetRenderer(kSsrc, NULL));
1231 } 1231 }
1232 1232
1233 // Tests the behavior of incoming streams in a conference scenario. 1233 // Tests the behavior of incoming streams in a conference scenario.
1234 void SimulateConference() { 1234 void SimulateConference() {
1235 cricket::FakeVideoRenderer renderer1, renderer2; 1235 cricket::FakeVideoRenderer renderer1, renderer2;
1236 EXPECT_TRUE(SetDefaultCodec()); 1236 EXPECT_TRUE(SetDefaultCodec());
1237 cricket::VideoSendParameters parameters; 1237 cricket::VideoSendParameters parameters;
1238 parameters.codecs.push_back(DefaultCodec()); 1238 parameters.codecs.push_back(DefaultCodec());
1239 parameters.options.conference_mode.Set(true); 1239 parameters.options.conference_mode = rtc::Maybe<bool>(true);
1240 EXPECT_TRUE(channel_->SetSendParameters(parameters)); 1240 EXPECT_TRUE(channel_->SetSendParameters(parameters));
1241 EXPECT_TRUE(SetSend(true)); 1241 EXPECT_TRUE(SetSend(true));
1242 EXPECT_TRUE(channel_->AddRecvStream( 1242 EXPECT_TRUE(channel_->AddRecvStream(
1243 cricket::StreamParams::CreateLegacy(1))); 1243 cricket::StreamParams::CreateLegacy(1)));
1244 EXPECT_TRUE(channel_->AddRecvStream( 1244 EXPECT_TRUE(channel_->AddRecvStream(
1245 cricket::StreamParams::CreateLegacy(2))); 1245 cricket::StreamParams::CreateLegacy(2)));
1246 EXPECT_TRUE(channel_->SetRenderer(1, &renderer1)); 1246 EXPECT_TRUE(channel_->SetRenderer(1, &renderer1));
1247 EXPECT_TRUE(channel_->SetRenderer(2, &renderer2)); 1247 EXPECT_TRUE(channel_->SetRenderer(2, &renderer2));
1248 EXPECT_EQ(0, renderer1.num_rendered_frames()); 1248 EXPECT_EQ(0, renderer1.num_rendered_frames());
1249 EXPECT_EQ(0, renderer2.num_rendered_frames()); 1249 EXPECT_EQ(0, renderer2.num_rendered_frames());
(...skipping 489 matching lines...) Expand 10 before | Expand all | Expand 10 after
1739 EXPECT_TRUE(channel_->SetCapturer(new_ssrc, video_capturer_.get())); 1739 EXPECT_TRUE(channel_->SetCapturer(new_ssrc, video_capturer_.get()));
1740 1740
1741 SendAndReceive(codec); 1741 SendAndReceive(codec);
1742 EXPECT_TRUE(channel_->RemoveSendStream(new_ssrc)); 1742 EXPECT_TRUE(channel_->RemoveSendStream(new_ssrc));
1743 EXPECT_EQ(0u, channel_->GetDefaultSendChannelSsrc()); 1743 EXPECT_EQ(0u, channel_->GetDefaultSendChannelSsrc());
1744 } 1744 }
1745 1745
1746 // Tests that we can send and receive frames with early receive. 1746 // Tests that we can send and receive frames with early receive.
1747 void TwoStreamsSendAndUnsignalledRecv(const cricket::VideoCodec& codec) { 1747 void TwoStreamsSendAndUnsignalledRecv(const cricket::VideoCodec& codec) {
1748 cricket::VideoSendParameters parameters; 1748 cricket::VideoSendParameters parameters;
1749 parameters.options.conference_mode.Set(true); 1749 parameters.options.conference_mode = rtc::Maybe<bool>(true);
1750 parameters.options.unsignalled_recv_stream_limit.Set(1); 1750 parameters.options.unsignalled_recv_stream_limit = rtc::Maybe<int>(1);
1751 EXPECT_TRUE(channel_->SetSendParameters(parameters)); 1751 EXPECT_TRUE(channel_->SetSendParameters(parameters));
1752 SetUpSecondStreamWithNoRecv(); 1752 SetUpSecondStreamWithNoRecv();
1753 // Test sending and receiving on first stream. 1753 // Test sending and receiving on first stream.
1754 Send(codec); 1754 Send(codec);
1755 EXPECT_EQ_WAIT(2, NumRtpPackets(), kTimeout); 1755 EXPECT_EQ_WAIT(2, NumRtpPackets(), kTimeout);
1756 EXPECT_EQ_WAIT(1, renderer_.num_rendered_frames(), kTimeout); 1756 EXPECT_EQ_WAIT(1, renderer_.num_rendered_frames(), kTimeout);
1757 // The first send is not expected to yield frames, because the ssrc 1757 // The first send is not expected to yield frames, because the ssrc
1758 // is not signalled yet. With unsignalled recv enabled, we will drop frames 1758 // is not signalled yet. With unsignalled recv enabled, we will drop frames
1759 // instead of packets. 1759 // instead of packets.
1760 EXPECT_EQ(0, renderer2_.num_rendered_frames()); 1760 EXPECT_EQ(0, renderer2_.num_rendered_frames());
(...skipping 12 matching lines...) Expand all
1773 // failed. 1773 // failed.
1774 EXPECT_EQ_WAIT(1, renderer2_.num_rendered_frames(), kTimeout); 1774 EXPECT_EQ_WAIT(1, renderer2_.num_rendered_frames(), kTimeout);
1775 } 1775 }
1776 1776
1777 // Tests that we drop key frames when conference mode is enabled and we 1777 // Tests that we drop key frames when conference mode is enabled and we
1778 // receive rtp packets on unsignalled streams. Removal of a unsignalled recv 1778 // receive rtp packets on unsignalled streams. Removal of a unsignalled recv
1779 // stream is successful. 1779 // stream is successful.
1780 void TwoStreamsAddAndRemoveUnsignalledRecv( 1780 void TwoStreamsAddAndRemoveUnsignalledRecv(
1781 const cricket::VideoCodec& codec) { 1781 const cricket::VideoCodec& codec) {
1782 cricket::VideoOptions vmo; 1782 cricket::VideoOptions vmo;
1783 vmo.conference_mode.Set(true); 1783 vmo.conference_mode = rtc::Maybe<bool>(true);
1784 vmo.unsignalled_recv_stream_limit.Set(1); 1784 vmo.unsignalled_recv_stream_limit = rtc::Maybe<int>(1);
1785 EXPECT_TRUE(channel_->SetOptions(vmo)); 1785 EXPECT_TRUE(channel_->SetOptions(vmo));
1786 SetUpSecondStreamWithNoRecv(); 1786 SetUpSecondStreamWithNoRecv();
1787 // Sending and receiving on first stream. 1787 // Sending and receiving on first stream.
1788 Send(codec); 1788 Send(codec);
1789 EXPECT_EQ_WAIT(2, NumRtpPackets(), kTimeout); 1789 EXPECT_EQ_WAIT(2, NumRtpPackets(), kTimeout);
1790 EXPECT_EQ_WAIT(1, renderer_.num_rendered_frames(), kTimeout); 1790 EXPECT_EQ_WAIT(1, renderer_.num_rendered_frames(), kTimeout);
1791 // The first send is not expected to yield frames, because the ssrc 1791 // The first send is not expected to yield frames, because the ssrc
1792 // is no signalled yet. With unsignalled recv enabled, we will drop frames 1792 // is no signalled yet. With unsignalled recv enabled, we will drop frames
1793 // instead of packets. 1793 // instead of packets.
1794 EXPECT_EQ(0, renderer2_.num_rendered_frames()); 1794 EXPECT_EQ(0, renderer2_.num_rendered_frames());
(...skipping 11 matching lines...) Expand all
1806 rtc::scoped_ptr<C> channel_; 1806 rtc::scoped_ptr<C> channel_;
1807 cricket::FakeNetworkInterface network_interface_; 1807 cricket::FakeNetworkInterface network_interface_;
1808 cricket::FakeVideoRenderer renderer_; 1808 cricket::FakeVideoRenderer renderer_;
1809 cricket::VideoMediaChannel::Error media_error_; 1809 cricket::VideoMediaChannel::Error media_error_;
1810 1810
1811 // Used by test cases where 2 streams are run on the same channel. 1811 // Used by test cases where 2 streams are run on the same channel.
1812 cricket::FakeVideoRenderer renderer2_; 1812 cricket::FakeVideoRenderer renderer2_;
1813 }; 1813 };
1814 1814
1815 #endif // TALK_MEDIA_BASE_VIDEOENGINE_UNITTEST_H_ NOLINT 1815 #endif // TALK_MEDIA_BASE_VIDEOENGINE_UNITTEST_H_ NOLINT
OLDNEW
« no previous file with comments | « talk/media/base/mediachannel.h ('k') | talk/media/webrtc/webrtcvideoengine2.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698