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

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

Issue 1334793003: Remove VideoMediaChannel::SetRender(). (Closed) Base URL: https://chromium.googlesource.com/external/webrtc.git@master
Patch Set: Remove fake SetRender Created 5 years, 3 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 * 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 742 matching lines...) Expand 10 before | Expand all | Expand 10 after
753 EXPECT_TRUE(SetSend(true)); 753 EXPECT_TRUE(SetSend(true));
754 EXPECT_TRUE(SendFrame()); 754 EXPECT_TRUE(SendFrame());
755 EXPECT_TRUE_WAIT(NumRtpPackets() > 0, kTimeout); 755 EXPECT_TRUE_WAIT(NumRtpPackets() > 0, kTimeout);
756 rtc::scoped_ptr<const rtc::Buffer> p(GetRtpPacket(0)); 756 rtc::scoped_ptr<const rtc::Buffer> p(GetRtpPacket(0));
757 EXPECT_EQ(codec.id, GetPayloadType(p.get())); 757 EXPECT_EQ(codec.id, GetPayloadType(p.get()));
758 } 758 }
759 // Tests that we can send and receive frames. 759 // Tests that we can send and receive frames.
760 void SendAndReceive(const cricket::VideoCodec& codec) { 760 void SendAndReceive(const cricket::VideoCodec& codec) {
761 EXPECT_TRUE(SetOneCodec(codec)); 761 EXPECT_TRUE(SetOneCodec(codec));
762 EXPECT_TRUE(SetSend(true)); 762 EXPECT_TRUE(SetSend(true));
763 EXPECT_TRUE(channel_->SetRender(true));
764 EXPECT_TRUE(channel_->SetRenderer(kDefaultReceiveSsrc, &renderer_)); 763 EXPECT_TRUE(channel_->SetRenderer(kDefaultReceiveSsrc, &renderer_));
765 EXPECT_EQ(0, renderer_.num_rendered_frames()); 764 EXPECT_EQ(0, renderer_.num_rendered_frames());
766 EXPECT_TRUE(SendFrame()); 765 EXPECT_TRUE(SendFrame());
767 EXPECT_FRAME_WAIT(1, codec.width, codec.height, kTimeout); 766 EXPECT_FRAME_WAIT(1, codec.width, codec.height, kTimeout);
768 rtc::scoped_ptr<const rtc::Buffer> p(GetRtpPacket(0)); 767 rtc::scoped_ptr<const rtc::Buffer> p(GetRtpPacket(0));
769 EXPECT_EQ(codec.id, GetPayloadType(p.get())); 768 EXPECT_EQ(codec.id, GetPayloadType(p.get()));
770 } 769 }
771 // Tests that we only get a VideoRenderer::SetSize() callback when needed. 770 // Tests that we only get a VideoRenderer::SetSize() callback when needed.
772 void SendManyResizeOnce() { 771 void SendManyResizeOnce() {
773 cricket::VideoCodec codec(DefaultCodec()); 772 cricket::VideoCodec codec(DefaultCodec());
774 EXPECT_TRUE(SetOneCodec(codec)); 773 EXPECT_TRUE(SetOneCodec(codec));
775 EXPECT_TRUE(SetSend(true)); 774 EXPECT_TRUE(SetSend(true));
776 EXPECT_TRUE(channel_->SetRender(true));
777 EXPECT_TRUE(channel_->SetRenderer(kDefaultReceiveSsrc, &renderer_)); 775 EXPECT_TRUE(channel_->SetRenderer(kDefaultReceiveSsrc, &renderer_));
778 EXPECT_EQ(0, renderer_.num_rendered_frames()); 776 EXPECT_EQ(0, renderer_.num_rendered_frames());
779 EXPECT_TRUE(WaitAndSendFrame(30)); 777 EXPECT_TRUE(WaitAndSendFrame(30));
780 EXPECT_FRAME_WAIT(1, codec.width, codec.height, kTimeout); 778 EXPECT_FRAME_WAIT(1, codec.width, codec.height, kTimeout);
781 EXPECT_TRUE(WaitAndSendFrame(30)); 779 EXPECT_TRUE(WaitAndSendFrame(30));
782 EXPECT_FRAME_WAIT(2, codec.width, codec.height, kTimeout); 780 EXPECT_FRAME_WAIT(2, codec.width, codec.height, kTimeout);
783 rtc::scoped_ptr<const rtc::Buffer> p(GetRtpPacket(0)); 781 rtc::scoped_ptr<const rtc::Buffer> p(GetRtpPacket(0));
784 EXPECT_EQ(codec.id, GetPayloadType(p.get())); 782 EXPECT_EQ(codec.id, GetPayloadType(p.get()));
785 EXPECT_EQ(1, renderer_.num_set_sizes()); 783 EXPECT_EQ(1, renderer_.num_set_sizes());
786 784
787 codec.width /= 2; 785 codec.width /= 2;
788 codec.height /= 2; 786 codec.height /= 2;
789 EXPECT_TRUE(SetOneCodec(codec)); 787 EXPECT_TRUE(SetOneCodec(codec));
790 EXPECT_TRUE(WaitAndSendFrame(30)); 788 EXPECT_TRUE(WaitAndSendFrame(30));
791 EXPECT_FRAME_WAIT(3, codec.width, codec.height, kTimeout); 789 EXPECT_FRAME_WAIT(3, codec.width, codec.height, kTimeout);
792 EXPECT_EQ(2, renderer_.num_set_sizes()); 790 EXPECT_EQ(2, renderer_.num_set_sizes());
793 } 791 }
794 void SendReceiveManyAndGetStats(const cricket::VideoCodec& codec, 792 void SendReceiveManyAndGetStats(const cricket::VideoCodec& codec,
795 int duration_sec, int fps) { 793 int duration_sec, int fps) {
796 EXPECT_TRUE(SetOneCodec(codec)); 794 EXPECT_TRUE(SetOneCodec(codec));
797 EXPECT_TRUE(SetSend(true)); 795 EXPECT_TRUE(SetSend(true));
798 EXPECT_TRUE(channel_->SetRender(true));
799 EXPECT_TRUE(channel_->SetRenderer(kDefaultReceiveSsrc, &renderer_)); 796 EXPECT_TRUE(channel_->SetRenderer(kDefaultReceiveSsrc, &renderer_));
800 EXPECT_EQ(0, renderer_.num_rendered_frames()); 797 EXPECT_EQ(0, renderer_.num_rendered_frames());
801 for (int i = 0; i < duration_sec; ++i) { 798 for (int i = 0; i < duration_sec; ++i) {
802 for (int frame = 1; frame <= fps; ++frame) { 799 for (int frame = 1; frame <= fps; ++frame) {
803 EXPECT_TRUE(WaitAndSendFrame(1000 / fps)); 800 EXPECT_TRUE(WaitAndSendFrame(1000 / fps));
804 EXPECT_FRAME_WAIT(frame + i * fps, codec.width, codec.height, kTimeout); 801 EXPECT_FRAME_WAIT(frame + i * fps, codec.width, codec.height, kTimeout);
805 } 802 }
806 } 803 }
807 rtc::scoped_ptr<const rtc::Buffer> p(GetRtpPacket(0)); 804 rtc::scoped_ptr<const rtc::Buffer> p(GetRtpPacket(0));
808 EXPECT_EQ(codec.id, GetPayloadType(p.get())); 805 EXPECT_EQ(codec.id, GetPayloadType(p.get()));
(...skipping 48 matching lines...) Expand 10 before | Expand all | Expand 10 after
857 cricket::VideoOptions vmo; 854 cricket::VideoOptions vmo;
858 vmo.conference_mode.Set(true); 855 vmo.conference_mode.Set(true);
859 EXPECT_TRUE(channel_->SetOptions(vmo)); 856 EXPECT_TRUE(channel_->SetOptions(vmo));
860 EXPECT_TRUE(SetSend(true)); 857 EXPECT_TRUE(SetSend(true));
861 EXPECT_TRUE(channel_->AddRecvStream( 858 EXPECT_TRUE(channel_->AddRecvStream(
862 cricket::StreamParams::CreateLegacy(1))); 859 cricket::StreamParams::CreateLegacy(1)));
863 EXPECT_TRUE(channel_->AddRecvStream( 860 EXPECT_TRUE(channel_->AddRecvStream(
864 cricket::StreamParams::CreateLegacy(2))); 861 cricket::StreamParams::CreateLegacy(2)));
865 EXPECT_TRUE(channel_->SetRenderer(1, &renderer1)); 862 EXPECT_TRUE(channel_->SetRenderer(1, &renderer1));
866 EXPECT_TRUE(channel_->SetRenderer(2, &renderer2)); 863 EXPECT_TRUE(channel_->SetRenderer(2, &renderer2));
867 EXPECT_TRUE(channel_->SetRender(true));
868 EXPECT_EQ(0, renderer1.num_rendered_frames()); 864 EXPECT_EQ(0, renderer1.num_rendered_frames());
869 EXPECT_EQ(0, renderer2.num_rendered_frames()); 865 EXPECT_EQ(0, renderer2.num_rendered_frames());
870 std::vector<uint32> ssrcs; 866 std::vector<uint32> ssrcs;
871 ssrcs.push_back(1); 867 ssrcs.push_back(1);
872 ssrcs.push_back(2); 868 ssrcs.push_back(2);
873 network_interface_.SetConferenceMode(true, ssrcs); 869 network_interface_.SetConferenceMode(true, ssrcs);
874 EXPECT_TRUE(SendFrame()); 870 EXPECT_TRUE(SendFrame());
875 EXPECT_FRAME_ON_RENDERER_WAIT( 871 EXPECT_FRAME_ON_RENDERER_WAIT(
876 renderer1, 1, DefaultCodec().width, DefaultCodec().height, kTimeout); 872 renderer1, 1, DefaultCodec().width, DefaultCodec().height, kTimeout);
877 EXPECT_FRAME_ON_RENDERER_WAIT( 873 EXPECT_FRAME_ON_RENDERER_WAIT(
(...skipping 25 matching lines...) Expand all
903 // it will come first in the senders map. 899 // it will come first in the senders map.
904 EXPECT_TRUE(SetOneCodec(DefaultCodec())); 900 EXPECT_TRUE(SetOneCodec(DefaultCodec()));
905 cricket::VideoOptions vmo; 901 cricket::VideoOptions vmo;
906 vmo.conference_mode.Set(true); 902 vmo.conference_mode.Set(true);
907 EXPECT_TRUE(channel_->SetOptions(vmo)); 903 EXPECT_TRUE(channel_->SetOptions(vmo));
908 EXPECT_TRUE(channel_->AddRecvStream( 904 EXPECT_TRUE(channel_->AddRecvStream(
909 cricket::StreamParams::CreateLegacy(kSsrc))); 905 cricket::StreamParams::CreateLegacy(kSsrc)));
910 EXPECT_TRUE(channel_->SetRenderer(kSsrc, &renderer_)); 906 EXPECT_TRUE(channel_->SetRenderer(kSsrc, &renderer_));
911 channel_->UpdateAspectRatio(640, 400); 907 channel_->UpdateAspectRatio(640, 400);
912 EXPECT_TRUE(SetSend(true)); 908 EXPECT_TRUE(SetSend(true));
913 EXPECT_TRUE(channel_->SetRender(true));
914 EXPECT_TRUE(SendFrame()); 909 EXPECT_TRUE(SendFrame());
915 EXPECT_TRUE_WAIT(NumRtpPackets() > 0, kTimeout); 910 EXPECT_TRUE_WAIT(NumRtpPackets() > 0, kTimeout);
916 EXPECT_FRAME_WAIT(1, DefaultCodec().width, DefaultCodec().height, kTimeout); 911 EXPECT_FRAME_WAIT(1, DefaultCodec().width, DefaultCodec().height, kTimeout);
917 912
918 // Add an additional capturer, and hook up a renderer to receive it. 913 // Add an additional capturer, and hook up a renderer to receive it.
919 cricket::FakeVideoRenderer renderer2; 914 cricket::FakeVideoRenderer renderer2;
920 rtc::scoped_ptr<cricket::FakeVideoCapturer> capturer( 915 rtc::scoped_ptr<cricket::FakeVideoCapturer> capturer(
921 CreateFakeVideoCapturer()); 916 CreateFakeVideoCapturer());
922 capturer->SetScreencast(true); 917 capturer->SetScreencast(true);
923 const int kTestWidth = 160; 918 const int kTestWidth = 160;
(...skipping 92 matching lines...) Expand 10 before | Expand all | Expand 10 after
1016 void SetRenderer() { 1011 void SetRenderer() {
1017 uint8 data1[] = { 1012 uint8 data1[] = {
1018 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 1013 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
1019 }; 1014 };
1020 1015
1021 rtc::Buffer packet1(data1, sizeof(data1)); 1016 rtc::Buffer packet1(data1, sizeof(data1));
1022 rtc::SetBE32(packet1.data() + 8, kSsrc); 1017 rtc::SetBE32(packet1.data() + 8, kSsrc);
1023 channel_->SetRenderer(kDefaultReceiveSsrc, NULL); 1018 channel_->SetRenderer(kDefaultReceiveSsrc, NULL);
1024 EXPECT_TRUE(SetDefaultCodec()); 1019 EXPECT_TRUE(SetDefaultCodec());
1025 EXPECT_TRUE(SetSend(true)); 1020 EXPECT_TRUE(SetSend(true));
1026 EXPECT_TRUE(channel_->SetRender(true));
1027 EXPECT_EQ(0, renderer_.num_rendered_frames()); 1021 EXPECT_EQ(0, renderer_.num_rendered_frames());
1028 channel_->OnPacketReceived(&packet1, rtc::PacketTime()); 1022 channel_->OnPacketReceived(&packet1, rtc::PacketTime());
1029 EXPECT_TRUE(channel_->SetRenderer(kDefaultReceiveSsrc, &renderer_)); 1023 EXPECT_TRUE(channel_->SetRenderer(kDefaultReceiveSsrc, &renderer_));
1030 EXPECT_TRUE(SendFrame()); 1024 EXPECT_TRUE(SendFrame());
1031 EXPECT_FRAME_WAIT(1, DefaultCodec().width, DefaultCodec().height, kTimeout); 1025 EXPECT_FRAME_WAIT(1, DefaultCodec().width, DefaultCodec().height, kTimeout);
1032 } 1026 }
1033 1027
1034 // Tests empty StreamParams is rejected. 1028 // Tests empty StreamParams is rejected.
1035 void RejectEmptyStreamParams() { 1029 void RejectEmptyStreamParams() {
1036 // Remove the send stream that was added during Setup. 1030 // Remove the send stream that was added during Setup.
1037 EXPECT_TRUE(channel_->RemoveSendStream(kSsrc)); 1031 EXPECT_TRUE(channel_->RemoveSendStream(kSsrc));
1038 1032
1039 cricket::StreamParams empty; 1033 cricket::StreamParams empty;
1040 EXPECT_FALSE(channel_->AddSendStream(empty)); 1034 EXPECT_FALSE(channel_->AddSendStream(empty));
1041 EXPECT_TRUE(channel_->AddSendStream( 1035 EXPECT_TRUE(channel_->AddSendStream(
1042 cricket::StreamParams::CreateLegacy(789u))); 1036 cricket::StreamParams::CreateLegacy(789u)));
1043 } 1037 }
1044 1038
1045 // Tests setting up and configuring a send stream. 1039 // Tests setting up and configuring a send stream.
1046 void AddRemoveSendStreams() { 1040 void AddRemoveSendStreams() {
1047 EXPECT_TRUE(SetOneCodec(DefaultCodec())); 1041 EXPECT_TRUE(SetOneCodec(DefaultCodec()));
1048 EXPECT_TRUE(SetSend(true)); 1042 EXPECT_TRUE(SetSend(true));
1049 EXPECT_TRUE(channel_->SetRender(true));
1050 EXPECT_TRUE(channel_->SetRenderer(kDefaultReceiveSsrc, &renderer_)); 1043 EXPECT_TRUE(channel_->SetRenderer(kDefaultReceiveSsrc, &renderer_));
1051 EXPECT_TRUE(SendFrame()); 1044 EXPECT_TRUE(SendFrame());
1052 EXPECT_FRAME_WAIT(1, DefaultCodec().width, DefaultCodec().height, kTimeout); 1045 EXPECT_FRAME_WAIT(1, DefaultCodec().width, DefaultCodec().height, kTimeout);
1053 EXPECT_GE(2, NumRtpPackets()); 1046 EXPECT_GE(2, NumRtpPackets());
1054 uint32 ssrc = 0; 1047 uint32 ssrc = 0;
1055 size_t last_packet = NumRtpPackets() - 1; 1048 size_t last_packet = NumRtpPackets() - 1;
1056 rtc::scoped_ptr<const rtc::Buffer> 1049 rtc::scoped_ptr<const rtc::Buffer>
1057 p(GetRtpPacket(static_cast<int>(last_packet))); 1050 p(GetRtpPacket(static_cast<int>(last_packet)));
1058 ParseRtpPacket(p.get(), NULL, NULL, NULL, NULL, &ssrc, NULL); 1051 ParseRtpPacket(p.get(), NULL, NULL, NULL, NULL, &ssrc, NULL);
1059 EXPECT_EQ(kSsrc, ssrc); 1052 EXPECT_EQ(kSsrc, ssrc);
(...skipping 125 matching lines...) Expand 10 before | Expand all | Expand 10 after
1185 EXPECT_FALSE(channel_->GetRenderer(1, &renderer)); 1178 EXPECT_FALSE(channel_->GetRenderer(1, &renderer));
1186 EXPECT_FALSE(channel_->GetRenderer(2, &renderer)); 1179 EXPECT_FALSE(channel_->GetRenderer(2, &renderer));
1187 } 1180 }
1188 1181
1189 // Test that no frames are rendered after the receive stream have been 1182 // Test that no frames are rendered after the receive stream have been
1190 // removed. 1183 // removed.
1191 void AddRemoveRecvStreamAndRender() { 1184 void AddRemoveRecvStreamAndRender() {
1192 cricket::FakeVideoRenderer renderer1; 1185 cricket::FakeVideoRenderer renderer1;
1193 EXPECT_TRUE(SetDefaultCodec()); 1186 EXPECT_TRUE(SetDefaultCodec());
1194 EXPECT_TRUE(SetSend(true)); 1187 EXPECT_TRUE(SetSend(true));
1195 EXPECT_TRUE(channel_->SetRender(true));
1196 EXPECT_TRUE(channel_->AddRecvStream( 1188 EXPECT_TRUE(channel_->AddRecvStream(
1197 cricket::StreamParams::CreateLegacy(kSsrc))); 1189 cricket::StreamParams::CreateLegacy(kSsrc)));
1198 EXPECT_TRUE(channel_->SetRenderer(kSsrc, &renderer1)); 1190 EXPECT_TRUE(channel_->SetRenderer(kSsrc, &renderer1));
1199 1191
1200 EXPECT_TRUE(SendFrame()); 1192 EXPECT_TRUE(SendFrame());
1201 EXPECT_FRAME_ON_RENDERER_WAIT( 1193 EXPECT_FRAME_ON_RENDERER_WAIT(
1202 renderer1, 1, DefaultCodec().width, DefaultCodec().height, kTimeout); 1194 renderer1, 1, DefaultCodec().width, DefaultCodec().height, kTimeout);
1203 EXPECT_TRUE(channel_->RemoveRecvStream(kSsrc)); 1195 EXPECT_TRUE(channel_->RemoveRecvStream(kSsrc));
1204 // Send three more frames. This is to avoid that the test might be flaky 1196 // Send three more frames. This is to avoid that the test might be flaky
1205 // due to frame dropping. 1197 // due to frame dropping.
(...skipping 23 matching lines...) Expand all
1229 } 1221 }
1230 1222
1231 // Tests the behavior of incoming streams in a conference scenario. 1223 // Tests the behavior of incoming streams in a conference scenario.
1232 void SimulateConference() { 1224 void SimulateConference() {
1233 cricket::FakeVideoRenderer renderer1, renderer2; 1225 cricket::FakeVideoRenderer renderer1, renderer2;
1234 EXPECT_TRUE(SetDefaultCodec()); 1226 EXPECT_TRUE(SetDefaultCodec());
1235 cricket::VideoOptions vmo; 1227 cricket::VideoOptions vmo;
1236 vmo.conference_mode.Set(true); 1228 vmo.conference_mode.Set(true);
1237 EXPECT_TRUE(channel_->SetOptions(vmo)); 1229 EXPECT_TRUE(channel_->SetOptions(vmo));
1238 EXPECT_TRUE(SetSend(true)); 1230 EXPECT_TRUE(SetSend(true));
1239 EXPECT_TRUE(channel_->SetRender(true));
1240 EXPECT_TRUE(channel_->AddRecvStream( 1231 EXPECT_TRUE(channel_->AddRecvStream(
1241 cricket::StreamParams::CreateLegacy(1))); 1232 cricket::StreamParams::CreateLegacy(1)));
1242 EXPECT_TRUE(channel_->AddRecvStream( 1233 EXPECT_TRUE(channel_->AddRecvStream(
1243 cricket::StreamParams::CreateLegacy(2))); 1234 cricket::StreamParams::CreateLegacy(2)));
1244 EXPECT_TRUE(channel_->SetRenderer(1, &renderer1)); 1235 EXPECT_TRUE(channel_->SetRenderer(1, &renderer1));
1245 EXPECT_TRUE(channel_->SetRenderer(2, &renderer2)); 1236 EXPECT_TRUE(channel_->SetRenderer(2, &renderer2));
1246 EXPECT_EQ(0, renderer1.num_rendered_frames()); 1237 EXPECT_EQ(0, renderer1.num_rendered_frames());
1247 EXPECT_EQ(0, renderer2.num_rendered_frames()); 1238 EXPECT_EQ(0, renderer2.num_rendered_frames());
1248 std::vector<uint32> ssrcs; 1239 std::vector<uint32> ssrcs;
1249 ssrcs.push_back(1); 1240 ssrcs.push_back(1);
(...skipping 16 matching lines...) Expand all
1266 } 1257 }
1267 1258
1268 // Tests that we can add and remove capturers and frames are sent out properly 1259 // Tests that we can add and remove capturers and frames are sent out properly
1269 void AddRemoveCapturer() { 1260 void AddRemoveCapturer() {
1270 cricket::VideoCodec codec = DefaultCodec(); 1261 cricket::VideoCodec codec = DefaultCodec();
1271 codec.width = 320; 1262 codec.width = 320;
1272 codec.height = 240; 1263 codec.height = 240;
1273 const int time_between_send = TimeBetweenSend(codec); 1264 const int time_between_send = TimeBetweenSend(codec);
1274 EXPECT_TRUE(SetOneCodec(codec)); 1265 EXPECT_TRUE(SetOneCodec(codec));
1275 EXPECT_TRUE(SetSend(true)); 1266 EXPECT_TRUE(SetSend(true));
1276 EXPECT_TRUE(channel_->SetRender(true));
1277 EXPECT_TRUE(channel_->SetRenderer(kDefaultReceiveSsrc, &renderer_)); 1267 EXPECT_TRUE(channel_->SetRenderer(kDefaultReceiveSsrc, &renderer_));
1278 EXPECT_EQ(0, renderer_.num_rendered_frames()); 1268 EXPECT_EQ(0, renderer_.num_rendered_frames());
1279 EXPECT_TRUE(SendFrame()); 1269 EXPECT_TRUE(SendFrame());
1280 EXPECT_FRAME_WAIT(1, codec.width, codec.height, kTimeout); 1270 EXPECT_FRAME_WAIT(1, codec.width, codec.height, kTimeout);
1281 rtc::scoped_ptr<cricket::FakeVideoCapturer> capturer( 1271 rtc::scoped_ptr<cricket::FakeVideoCapturer> capturer(
1282 CreateFakeVideoCapturer()); 1272 CreateFakeVideoCapturer());
1283 capturer->SetScreencast(true); 1273 capturer->SetScreencast(true);
1284 cricket::VideoFormat format(480, 360, 1274 cricket::VideoFormat format(480, 360,
1285 cricket::VideoFormat::FpsToInterval(30), 1275 cricket::VideoFormat::FpsToInterval(30),
1286 cricket::FOURCC_I420); 1276 cricket::FOURCC_I420);
(...skipping 41 matching lines...) Expand 10 before | Expand all | Expand 10 after
1328 EXPECT_TRUE(capturer->CaptureCustomFrame(format.width, format.height, 1318 EXPECT_TRUE(capturer->CaptureCustomFrame(format.width, format.height,
1329 cricket::FOURCC_I420)); 1319 cricket::FOURCC_I420));
1330 } 1320 }
1331 } 1321 }
1332 1322
1333 // Tests that if RemoveCapturer is called without a capturer ever being 1323 // Tests that if RemoveCapturer is called without a capturer ever being
1334 // added, the plugin shouldn't crash (and no black frame should be sent). 1324 // added, the plugin shouldn't crash (and no black frame should be sent).
1335 void RemoveCapturerWithoutAdd() { 1325 void RemoveCapturerWithoutAdd() {
1336 EXPECT_TRUE(SetOneCodec(DefaultCodec())); 1326 EXPECT_TRUE(SetOneCodec(DefaultCodec()));
1337 EXPECT_TRUE(SetSend(true)); 1327 EXPECT_TRUE(SetSend(true));
1338 EXPECT_TRUE(channel_->SetRender(true));
1339 EXPECT_TRUE(channel_->SetRenderer(kDefaultReceiveSsrc, &renderer_)); 1328 EXPECT_TRUE(channel_->SetRenderer(kDefaultReceiveSsrc, &renderer_));
1340 EXPECT_EQ(0, renderer_.num_rendered_frames()); 1329 EXPECT_EQ(0, renderer_.num_rendered_frames());
1341 EXPECT_TRUE(SendFrame()); 1330 EXPECT_TRUE(SendFrame());
1342 EXPECT_FRAME_WAIT(1, 640, 400, kTimeout); 1331 EXPECT_FRAME_WAIT(1, 640, 400, kTimeout);
1343 // Wait for one frame so they don't get dropped because we send frames too 1332 // Wait for one frame so they don't get dropped because we send frames too
1344 // tightly. 1333 // tightly.
1345 rtc::Thread::Current()->ProcessMessages(30); 1334 rtc::Thread::Current()->ProcessMessages(30);
1346 // Remove the capturer. 1335 // Remove the capturer.
1347 EXPECT_TRUE(channel_->SetCapturer(kSsrc, NULL)); 1336 EXPECT_TRUE(channel_->SetCapturer(kSsrc, NULL));
1348 // Wait for one black frame for removing the capturer. 1337 // Wait for one black frame for removing the capturer.
(...skipping 44 matching lines...) Expand 10 before | Expand all | Expand 10 after
1393 capturer2->SetScreencast(true); 1382 capturer2->SetScreencast(true);
1394 EXPECT_EQ(cricket::CS_RUNNING, capturer2->Start(capture_format)); 1383 EXPECT_EQ(cricket::CS_RUNNING, capturer2->Start(capture_format));
1395 // State for all the streams. 1384 // State for all the streams.
1396 EXPECT_TRUE(SetOneCodec(DefaultCodec())); 1385 EXPECT_TRUE(SetOneCodec(DefaultCodec()));
1397 // A limitation in the lmi implementation requires that SetCapturer() is 1386 // A limitation in the lmi implementation requires that SetCapturer() is
1398 // called after SetOneCodec(). 1387 // called after SetOneCodec().
1399 // TODO(hellner): this seems like an unnecessary constraint, fix it. 1388 // TODO(hellner): this seems like an unnecessary constraint, fix it.
1400 EXPECT_TRUE(channel_->SetCapturer(1, capturer1.get())); 1389 EXPECT_TRUE(channel_->SetCapturer(1, capturer1.get()));
1401 EXPECT_TRUE(channel_->SetCapturer(2, capturer2.get())); 1390 EXPECT_TRUE(channel_->SetCapturer(2, capturer2.get()));
1402 EXPECT_TRUE(SetSend(true)); 1391 EXPECT_TRUE(SetSend(true));
1403 EXPECT_TRUE(channel_->SetRender(true));
1404 // Test capturer associated with engine. 1392 // Test capturer associated with engine.
1405 const int kTestWidth = 160; 1393 const int kTestWidth = 160;
1406 const int kTestHeight = 120; 1394 const int kTestHeight = 120;
1407 EXPECT_TRUE(capturer1->CaptureCustomFrame( 1395 EXPECT_TRUE(capturer1->CaptureCustomFrame(
1408 kTestWidth, kTestHeight, cricket::FOURCC_I420)); 1396 kTestWidth, kTestHeight, cricket::FOURCC_I420));
1409 EXPECT_FRAME_ON_RENDERER_WAIT( 1397 EXPECT_FRAME_ON_RENDERER_WAIT(
1410 renderer1, 1, kTestWidth, kTestHeight, kTimeout); 1398 renderer1, 1, kTestWidth, kTestHeight, kTimeout);
1411 // Capture a frame with additional capturer2, frames should be received 1399 // Capture a frame with additional capturer2, frames should be received
1412 EXPECT_TRUE(capturer2->CaptureCustomFrame( 1400 EXPECT_TRUE(capturer2->CaptureCustomFrame(
1413 kTestWidth, kTestHeight, cricket::FOURCC_I420)); 1401 kTestWidth, kTestHeight, cricket::FOURCC_I420));
(...skipping 16 matching lines...) Expand all
1430 const int kScaledHeight = 2500; 1418 const int kScaledHeight = 2500;
1431 1419
1432 cricket::VideoCodec codec(DefaultCodec()); 1420 cricket::VideoCodec codec(DefaultCodec());
1433 EXPECT_TRUE(SetOneCodec(codec)); 1421 EXPECT_TRUE(SetOneCodec(codec));
1434 EXPECT_TRUE(SetSend(true)); 1422 EXPECT_TRUE(SetSend(true));
1435 1423
1436 cricket::FakeVideoRenderer renderer; 1424 cricket::FakeVideoRenderer renderer;
1437 EXPECT_TRUE(channel_->AddRecvStream( 1425 EXPECT_TRUE(channel_->AddRecvStream(
1438 cricket::StreamParams::CreateLegacy(kSsrc))); 1426 cricket::StreamParams::CreateLegacy(kSsrc)));
1439 EXPECT_TRUE(channel_->SetRenderer(kSsrc, &renderer)); 1427 EXPECT_TRUE(channel_->SetRenderer(kSsrc, &renderer));
1440 EXPECT_TRUE(channel_->SetRender(true));
1441 EXPECT_EQ(0, renderer.num_rendered_frames()); 1428 EXPECT_EQ(0, renderer.num_rendered_frames());
1442 1429
1443 EXPECT_TRUE(SendFrame()); 1430 EXPECT_TRUE(SendFrame());
1444 EXPECT_GT_FRAME_ON_RENDERER_WAIT( 1431 EXPECT_GT_FRAME_ON_RENDERER_WAIT(
1445 renderer, 1, codec.width, codec.height, kTimeout); 1432 renderer, 1, codec.width, codec.height, kTimeout);
1446 1433
1447 // Registering an external capturer is currently the same as screen casting 1434 // Registering an external capturer is currently the same as screen casting
1448 // (update the test when this changes). 1435 // (update the test when this changes).
1449 rtc::scoped_ptr<cricket::FakeVideoCapturer> capturer( 1436 rtc::scoped_ptr<cricket::FakeVideoCapturer> capturer(
1450 CreateFakeVideoCapturer()); 1437 CreateFakeVideoCapturer());
(...skipping 42 matching lines...) Expand 10 before | Expand all | Expand 10 after
1493 EXPECT_FRAME_WAIT(2, codec.width, codec.height, kTimeout); 1480 EXPECT_FRAME_WAIT(2, codec.width, codec.height, kTimeout);
1494 } 1481 }
1495 // Tests that we can drop all frames properly. 1482 // Tests that we can drop all frames properly.
1496 void AdaptDropAllFrames() { 1483 void AdaptDropAllFrames() {
1497 // Set the channel codec's resolution to 0, which will require the adapter 1484 // Set the channel codec's resolution to 0, which will require the adapter
1498 // to drop all frames. 1485 // to drop all frames.
1499 cricket::VideoCodec codec(DefaultCodec()); 1486 cricket::VideoCodec codec(DefaultCodec());
1500 codec.width = codec.height = codec.framerate = 0; 1487 codec.width = codec.height = codec.framerate = 0;
1501 EXPECT_TRUE(SetOneCodec(codec)); 1488 EXPECT_TRUE(SetOneCodec(codec));
1502 EXPECT_TRUE(SetSend(true)); 1489 EXPECT_TRUE(SetSend(true));
1503 EXPECT_TRUE(channel_->SetRender(true));
1504 EXPECT_TRUE(channel_->SetRenderer(kDefaultReceiveSsrc, &renderer_)); 1490 EXPECT_TRUE(channel_->SetRenderer(kDefaultReceiveSsrc, &renderer_));
1505 EXPECT_EQ(0, renderer_.num_rendered_frames()); 1491 EXPECT_EQ(0, renderer_.num_rendered_frames());
1506 EXPECT_TRUE(SendFrame()); 1492 EXPECT_TRUE(SendFrame());
1507 EXPECT_TRUE(SendFrame()); 1493 EXPECT_TRUE(SendFrame());
1508 rtc::Thread::Current()->ProcessMessages(500); 1494 rtc::Thread::Current()->ProcessMessages(500);
1509 EXPECT_EQ(0, renderer_.num_rendered_frames()); 1495 EXPECT_EQ(0, renderer_.num_rendered_frames());
1510 } 1496 }
1511 // Tests that we can reduce the frame rate on demand properly. 1497 // Tests that we can reduce the frame rate on demand properly.
1512 // TODO(fbarchard): This test is flakey on pulse. Fix and re-enable 1498 // TODO(fbarchard): This test is flakey on pulse. Fix and re-enable
1513 void AdaptFramerate() { 1499 void AdaptFramerate() {
1514 cricket::VideoCodec codec(DefaultCodec()); 1500 cricket::VideoCodec codec(DefaultCodec());
1515 int frame_count = 0; 1501 int frame_count = 0;
1516 // The capturer runs at 30 fps. The channel requires 30 fps. 1502 // The capturer runs at 30 fps. The channel requires 30 fps.
1517 EXPECT_TRUE(SetOneCodec(codec)); 1503 EXPECT_TRUE(SetOneCodec(codec));
1518 EXPECT_TRUE(SetSend(true)); 1504 EXPECT_TRUE(SetSend(true));
1519 EXPECT_TRUE(channel_->SetRender(true));
1520 EXPECT_EQ(frame_count, renderer_.num_rendered_frames()); 1505 EXPECT_EQ(frame_count, renderer_.num_rendered_frames());
1521 EXPECT_TRUE(WaitAndSendFrame(0)); // Should be rendered. 1506 EXPECT_TRUE(WaitAndSendFrame(0)); // Should be rendered.
1522 EXPECT_TRUE(WaitAndSendFrame(30)); // Should be rendered. 1507 EXPECT_TRUE(WaitAndSendFrame(30)); // Should be rendered.
1523 frame_count += 2; 1508 frame_count += 2;
1524 EXPECT_FRAME_WAIT(frame_count, codec.width, codec.height, kTimeout); 1509 EXPECT_FRAME_WAIT(frame_count, codec.width, codec.height, kTimeout);
1525 rtc::scoped_ptr<const rtc::Buffer> p(GetRtpPacket(0)); 1510 rtc::scoped_ptr<const rtc::Buffer> p(GetRtpPacket(0));
1526 EXPECT_EQ(codec.id, GetPayloadType(p.get())); 1511 EXPECT_EQ(codec.id, GetPayloadType(p.get()));
1527 1512
1528 // The channel requires 15 fps. 1513 // The channel requires 15 fps.
1529 codec.framerate = 15; 1514 codec.framerate = 15;
(...skipping 25 matching lines...) Expand all
1555 frame_count += 2; 1540 frame_count += 2;
1556 EXPECT_EQ_WAIT(frame_count, renderer_.num_rendered_frames(), kTimeout); 1541 EXPECT_EQ_WAIT(frame_count, renderer_.num_rendered_frames(), kTimeout);
1557 } 1542 }
1558 // Tests that adapted frames won't be upscaled to a higher resolution. 1543 // Tests that adapted frames won't be upscaled to a higher resolution.
1559 void SendsLowerResolutionOnSmallerFrames() { 1544 void SendsLowerResolutionOnSmallerFrames() {
1560 cricket::VideoCodec codec = DefaultCodec(); 1545 cricket::VideoCodec codec = DefaultCodec();
1561 codec.width = 320; 1546 codec.width = 320;
1562 codec.height = 240; 1547 codec.height = 240;
1563 EXPECT_TRUE(SetOneCodec(codec)); 1548 EXPECT_TRUE(SetOneCodec(codec));
1564 EXPECT_TRUE(SetSend(true)); 1549 EXPECT_TRUE(SetSend(true));
1565 EXPECT_TRUE(channel_->SetRender(true));
1566 EXPECT_TRUE(channel_->SetRenderer(kDefaultReceiveSsrc, &renderer_)); 1550 EXPECT_TRUE(channel_->SetRenderer(kDefaultReceiveSsrc, &renderer_));
1567 EXPECT_EQ(0, renderer_.num_rendered_frames()); 1551 EXPECT_EQ(0, renderer_.num_rendered_frames());
1568 EXPECT_TRUE(SendFrame()); 1552 EXPECT_TRUE(SendFrame());
1569 EXPECT_FRAME_WAIT(1, codec.width, codec.height, kTimeout); 1553 EXPECT_FRAME_WAIT(1, codec.width, codec.height, kTimeout);
1570 1554
1571 // Check that we send smaller frames at the new resolution. 1555 // Check that we send smaller frames at the new resolution.
1572 EXPECT_TRUE(rtc::Thread::Current()->ProcessMessages(33)); 1556 EXPECT_TRUE(rtc::Thread::Current()->ProcessMessages(33));
1573 EXPECT_TRUE(video_capturer_->CaptureCustomFrame( 1557 EXPECT_TRUE(video_capturer_->CaptureCustomFrame(
1574 codec.width / 2, codec.height / 2, cricket::FOURCC_I420)); 1558 codec.width / 2, codec.height / 2, cricket::FOURCC_I420));
1575 EXPECT_FRAME_WAIT(2, codec.width / 2, codec.height / 2, kTimeout); 1559 EXPECT_FRAME_WAIT(2, codec.width / 2, codec.height / 2, kTimeout);
(...skipping 29 matching lines...) Expand all
1605 EXPECT_TRUE(SendFrame()); 1589 EXPECT_TRUE(SendFrame());
1606 rtc::Thread::Current()->ProcessMessages(500); 1590 rtc::Thread::Current()->ProcessMessages(500);
1607 EXPECT_EQ(frame_count, renderer_.num_rendered_frames()); 1591 EXPECT_EQ(frame_count, renderer_.num_rendered_frames());
1608 } 1592 }
1609 // Test that setting send stream format to 0x0 resolution will result in 1593 // Test that setting send stream format to 0x0 resolution will result in
1610 // frames being dropped. 1594 // frames being dropped.
1611 void SetSendStreamFormat0x0() { 1595 void SetSendStreamFormat0x0() {
1612 EXPECT_TRUE(SetOneCodec(DefaultCodec())); 1596 EXPECT_TRUE(SetOneCodec(DefaultCodec()));
1613 EXPECT_TRUE(SetSendStreamFormat(kSsrc, DefaultCodec())); 1597 EXPECT_TRUE(SetSendStreamFormat(kSsrc, DefaultCodec()));
1614 EXPECT_TRUE(SetSend(true)); 1598 EXPECT_TRUE(SetSend(true));
1615 EXPECT_TRUE(channel_->SetRender(true));
1616 EXPECT_TRUE(channel_->SetRenderer(kDefaultReceiveSsrc, &renderer_)); 1599 EXPECT_TRUE(channel_->SetRenderer(kDefaultReceiveSsrc, &renderer_));
1617 EXPECT_EQ(0, renderer_.num_rendered_frames()); 1600 EXPECT_EQ(0, renderer_.num_rendered_frames());
1618 // This frame should be received. 1601 // This frame should be received.
1619 EXPECT_TRUE(SendFrame()); 1602 EXPECT_TRUE(SendFrame());
1620 EXPECT_FRAME_WAIT(1, DefaultCodec().width, DefaultCodec().height, kTimeout); 1603 EXPECT_FRAME_WAIT(1, DefaultCodec().width, DefaultCodec().height, kTimeout);
1621 const int64 interval = cricket::VideoFormat::FpsToInterval( 1604 const int64 interval = cricket::VideoFormat::FpsToInterval(
1622 DefaultCodec().framerate); 1605 DefaultCodec().framerate);
1623 cricket::VideoFormat format( 1606 cricket::VideoFormat format(
1624 0, 1607 0,
1625 0, 1608 0,
(...skipping 11 matching lines...) Expand all
1637 void MuteStream() { 1620 void MuteStream() {
1638 EXPECT_TRUE(SetDefaultCodec()); 1621 EXPECT_TRUE(SetDefaultCodec());
1639 cricket::FakeVideoCapturer video_capturer; 1622 cricket::FakeVideoCapturer video_capturer;
1640 video_capturer.Start( 1623 video_capturer.Start(
1641 cricket::VideoFormat( 1624 cricket::VideoFormat(
1642 640, 480, 1625 640, 480,
1643 cricket::VideoFormat::FpsToInterval(30), 1626 cricket::VideoFormat::FpsToInterval(30),
1644 cricket::FOURCC_I420)); 1627 cricket::FOURCC_I420));
1645 EXPECT_TRUE(channel_->SetCapturer(kSsrc, &video_capturer)); 1628 EXPECT_TRUE(channel_->SetCapturer(kSsrc, &video_capturer));
1646 EXPECT_TRUE(SetSend(true)); 1629 EXPECT_TRUE(SetSend(true));
1647 EXPECT_TRUE(channel_->SetRender(true));
1648 EXPECT_TRUE(channel_->SetRenderer(kDefaultReceiveSsrc, &renderer_)); 1630 EXPECT_TRUE(channel_->SetRenderer(kDefaultReceiveSsrc, &renderer_));
1649 EXPECT_EQ(0, renderer_.num_rendered_frames()); 1631 EXPECT_EQ(0, renderer_.num_rendered_frames());
1650 // Mute the channel and expect black output frame. 1632 // Mute the channel and expect black output frame.
1651 int frame_count = 0; 1633 int frame_count = 0;
1652 EXPECT_TRUE(channel_->SetVideoSend(kSsrc, true, nullptr)); 1634 EXPECT_TRUE(channel_->SetVideoSend(kSsrc, true, nullptr));
1653 EXPECT_TRUE(video_capturer.CaptureFrame()); 1635 EXPECT_TRUE(video_capturer.CaptureFrame());
1654 ++frame_count; 1636 ++frame_count;
1655 EXPECT_EQ_WAIT(frame_count, renderer_.num_rendered_frames(), kTimeout); 1637 EXPECT_EQ_WAIT(frame_count, renderer_.num_rendered_frames(), kTimeout);
1656 EXPECT_TRUE(renderer_.black_frame()); 1638 EXPECT_TRUE(renderer_.black_frame());
1657 // Unmute the channel and expect non-black output frame. 1639 // Unmute the channel and expect non-black output frame.
(...skipping 93 matching lines...) Expand 10 before | Expand all | Expand 10 after
1751 } 1733 }
1752 1734
1753 // Tests that we can send and receive frames with early receive. 1735 // Tests that we can send and receive frames with early receive.
1754 void TwoStreamsSendAndUnsignalledRecv(const cricket::VideoCodec& codec) { 1736 void TwoStreamsSendAndUnsignalledRecv(const cricket::VideoCodec& codec) {
1755 cricket::VideoOptions vmo; 1737 cricket::VideoOptions vmo;
1756 vmo.conference_mode.Set(true); 1738 vmo.conference_mode.Set(true);
1757 vmo.unsignalled_recv_stream_limit.Set(1); 1739 vmo.unsignalled_recv_stream_limit.Set(1);
1758 EXPECT_TRUE(channel_->SetOptions(vmo)); 1740 EXPECT_TRUE(channel_->SetOptions(vmo));
1759 SetUpSecondStreamWithNoRecv(); 1741 SetUpSecondStreamWithNoRecv();
1760 // Test sending and receiving on first stream. 1742 // Test sending and receiving on first stream.
1761 EXPECT_TRUE(channel_->SetRender(true));
1762 Send(codec); 1743 Send(codec);
1763 EXPECT_EQ_WAIT(2, NumRtpPackets(), kTimeout); 1744 EXPECT_EQ_WAIT(2, NumRtpPackets(), kTimeout);
1764 EXPECT_EQ_WAIT(1, renderer_.num_rendered_frames(), kTimeout); 1745 EXPECT_EQ_WAIT(1, renderer_.num_rendered_frames(), kTimeout);
1765 // The first send is not expected to yield frames, because the ssrc 1746 // The first send is not expected to yield frames, because the ssrc
1766 // is not signalled yet. With unsignalled recv enabled, we will drop frames 1747 // is not signalled yet. With unsignalled recv enabled, we will drop frames
1767 // instead of packets. 1748 // instead of packets.
1768 EXPECT_EQ(0, renderer2_.num_rendered_frames()); 1749 EXPECT_EQ(0, renderer2_.num_rendered_frames());
1769 // Give a chance for the decoder to process before adding the receiver. 1750 // Give a chance for the decoder to process before adding the receiver.
1770 rtc::Thread::Current()->ProcessMessages(100); 1751 rtc::Thread::Current()->ProcessMessages(100);
1771 // Test sending and receiving on second stream. 1752 // Test sending and receiving on second stream.
(...skipping 11 matching lines...) Expand all
1783 } 1764 }
1784 1765
1785 // Tests that we cannot receive key frames with unsignalled recv disabled. 1766 // Tests that we cannot receive key frames with unsignalled recv disabled.
1786 void TwoStreamsSendAndFailUnsignalledRecv(const cricket::VideoCodec& codec) { 1767 void TwoStreamsSendAndFailUnsignalledRecv(const cricket::VideoCodec& codec) {
1787 cricket::VideoOptions vmo; 1768 cricket::VideoOptions vmo;
1788 vmo.conference_mode.Set(true); 1769 vmo.conference_mode.Set(true);
1789 vmo.unsignalled_recv_stream_limit.Set(0); 1770 vmo.unsignalled_recv_stream_limit.Set(0);
1790 EXPECT_TRUE(channel_->SetOptions(vmo)); 1771 EXPECT_TRUE(channel_->SetOptions(vmo));
1791 SetUpSecondStreamWithNoRecv(); 1772 SetUpSecondStreamWithNoRecv();
1792 // Test sending and receiving on first stream. 1773 // Test sending and receiving on first stream.
1793 EXPECT_TRUE(channel_->SetRender(true));
1794 Send(codec); 1774 Send(codec);
1795 EXPECT_EQ_WAIT(2, NumRtpPackets(), kTimeout); 1775 EXPECT_EQ_WAIT(2, NumRtpPackets(), kTimeout);
1796 rtc::Thread::Current()->ProcessMessages(100); 1776 rtc::Thread::Current()->ProcessMessages(100);
1797 EXPECT_EQ_WAIT(1, renderer_.num_rendered_frames(), kTimeout); 1777 EXPECT_EQ_WAIT(1, renderer_.num_rendered_frames(), kTimeout);
1798 EXPECT_EQ_WAIT(0, renderer2_.num_rendered_frames(), kTimeout); 1778 EXPECT_EQ_WAIT(0, renderer2_.num_rendered_frames(), kTimeout);
1799 // Give a chance for the decoder to process before adding the receiver. 1779 // Give a chance for the decoder to process before adding the receiver.
1800 rtc::Thread::Current()->ProcessMessages(10); 1780 rtc::Thread::Current()->ProcessMessages(10);
1801 // Test sending and receiving on second stream. 1781 // Test sending and receiving on second stream.
1802 EXPECT_TRUE(channel_->AddRecvStream( 1782 EXPECT_TRUE(channel_->AddRecvStream(
1803 cricket::StreamParams::CreateLegacy(kSsrc + 2))); 1783 cricket::StreamParams::CreateLegacy(kSsrc + 2)));
(...skipping 10 matching lines...) Expand all
1814 // Tests that we drop key frames when conference mode is disabled and we 1794 // Tests that we drop key frames when conference mode is disabled and we
1815 // receive rtp packets on unsignalled streams. 1795 // receive rtp packets on unsignalled streams.
1816 void TwoStreamsSendAndFailUnsignalledRecvInOneToOne( 1796 void TwoStreamsSendAndFailUnsignalledRecvInOneToOne(
1817 const cricket::VideoCodec& codec) { 1797 const cricket::VideoCodec& codec) {
1818 cricket::VideoOptions vmo; 1798 cricket::VideoOptions vmo;
1819 vmo.conference_mode.Set(false); 1799 vmo.conference_mode.Set(false);
1820 vmo.unsignalled_recv_stream_limit.Set(1); 1800 vmo.unsignalled_recv_stream_limit.Set(1);
1821 EXPECT_TRUE(channel_->SetOptions(vmo)); 1801 EXPECT_TRUE(channel_->SetOptions(vmo));
1822 SetUpSecondStreamWithNoRecv(); 1802 SetUpSecondStreamWithNoRecv();
1823 // Test sending and receiving on first stream. 1803 // Test sending and receiving on first stream.
1824 EXPECT_TRUE(channel_->SetRender(true));
1825 Send(codec); 1804 Send(codec);
1826 EXPECT_EQ_WAIT(2, NumRtpPackets(), kTimeout); 1805 EXPECT_EQ_WAIT(2, NumRtpPackets(), kTimeout);
1827 // In one-to-one mode, we deliver frames to the default channel if there 1806 // In one-to-one mode, we deliver frames to the default channel if there
1828 // is no registered recv channel for the ssrc. 1807 // is no registered recv channel for the ssrc.
1829 EXPECT_TRUE_WAIT(renderer_.num_rendered_frames() >= 1, kTimeout); 1808 EXPECT_TRUE_WAIT(renderer_.num_rendered_frames() >= 1, kTimeout);
1830 // Give a chance for the decoder to process before adding the receiver. 1809 // Give a chance for the decoder to process before adding the receiver.
1831 rtc::Thread::Current()->ProcessMessages(100); 1810 rtc::Thread::Current()->ProcessMessages(100);
1832 // Test sending and receiving on second stream. 1811 // Test sending and receiving on second stream.
1833 EXPECT_TRUE(channel_->AddRecvStream( 1812 EXPECT_TRUE(channel_->AddRecvStream(
1834 cricket::StreamParams::CreateLegacy(kSsrc + 2))); 1813 cricket::StreamParams::CreateLegacy(kSsrc + 2)));
(...skipping 10 matching lines...) Expand all
1845 // receive rtp packets on unsignalled streams. Removal of a unsignalled recv 1824 // receive rtp packets on unsignalled streams. Removal of a unsignalled recv
1846 // stream is successful. 1825 // stream is successful.
1847 void TwoStreamsAddAndRemoveUnsignalledRecv( 1826 void TwoStreamsAddAndRemoveUnsignalledRecv(
1848 const cricket::VideoCodec& codec) { 1827 const cricket::VideoCodec& codec) {
1849 cricket::VideoOptions vmo; 1828 cricket::VideoOptions vmo;
1850 vmo.conference_mode.Set(true); 1829 vmo.conference_mode.Set(true);
1851 vmo.unsignalled_recv_stream_limit.Set(1); 1830 vmo.unsignalled_recv_stream_limit.Set(1);
1852 EXPECT_TRUE(channel_->SetOptions(vmo)); 1831 EXPECT_TRUE(channel_->SetOptions(vmo));
1853 SetUpSecondStreamWithNoRecv(); 1832 SetUpSecondStreamWithNoRecv();
1854 // Sending and receiving on first stream. 1833 // Sending and receiving on first stream.
1855 EXPECT_TRUE(channel_->SetRender(true));
1856 Send(codec); 1834 Send(codec);
1857 EXPECT_EQ_WAIT(2, NumRtpPackets(), kTimeout); 1835 EXPECT_EQ_WAIT(2, NumRtpPackets(), kTimeout);
1858 EXPECT_EQ_WAIT(1, renderer_.num_rendered_frames(), kTimeout); 1836 EXPECT_EQ_WAIT(1, renderer_.num_rendered_frames(), kTimeout);
1859 // The first send is not expected to yield frames, because the ssrc 1837 // The first send is not expected to yield frames, because the ssrc
1860 // is no signalled yet. With unsignalled recv enabled, we will drop frames 1838 // is no signalled yet. With unsignalled recv enabled, we will drop frames
1861 // instead of packets. 1839 // instead of packets.
1862 EXPECT_EQ(0, renderer2_.num_rendered_frames()); 1840 EXPECT_EQ(0, renderer2_.num_rendered_frames());
1863 // Give a chance for the decoder to process before adding the receiver. 1841 // Give a chance for the decoder to process before adding the receiver.
1864 rtc::Thread::Current()->ProcessMessages(100); 1842 rtc::Thread::Current()->ProcessMessages(100);
1865 // Ensure that we can remove the unsignalled recv stream that was created 1843 // Ensure that we can remove the unsignalled recv stream that was created
1866 // when the first video packet with unsignalled recv ssrc is received. 1844 // when the first video packet with unsignalled recv ssrc is received.
1867 EXPECT_TRUE(channel_->RemoveRecvStream(kSsrc + 2)); 1845 EXPECT_TRUE(channel_->RemoveRecvStream(kSsrc + 2));
1868 } 1846 }
1869 1847
1870 VideoEngineOverride<E> engine_; 1848 VideoEngineOverride<E> engine_;
1871 rtc::scoped_ptr<cricket::FakeVideoCapturer> video_capturer_; 1849 rtc::scoped_ptr<cricket::FakeVideoCapturer> video_capturer_;
1872 rtc::scoped_ptr<cricket::FakeVideoCapturer> video_capturer_2_; 1850 rtc::scoped_ptr<cricket::FakeVideoCapturer> video_capturer_2_;
1873 rtc::scoped_ptr<C> channel_; 1851 rtc::scoped_ptr<C> channel_;
1874 cricket::FakeNetworkInterface network_interface_; 1852 cricket::FakeNetworkInterface network_interface_;
1875 cricket::FakeVideoRenderer renderer_; 1853 cricket::FakeVideoRenderer renderer_;
1876 cricket::VideoMediaChannel::Error media_error_; 1854 cricket::VideoMediaChannel::Error media_error_;
1877 1855
1878 // Used by test cases where 2 streams are run on the same channel. 1856 // Used by test cases where 2 streams are run on the same channel.
1879 cricket::FakeVideoRenderer renderer2_; 1857 cricket::FakeVideoRenderer renderer2_;
1880 }; 1858 };
1881 1859
1882 #endif // TALK_MEDIA_BASE_VIDEOENGINE_UNITTEST_H_ NOLINT 1860 #endif // TALK_MEDIA_BASE_VIDEOENGINE_UNITTEST_H_ NOLINT
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698