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

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

Issue 1668493002: Replace uses of cricket::VideoRenderer by rtc::VideoSinkInterface. (Closed) Base URL: https://chromium.googlesource.com/external/webrtc.git@master
Patch Set: Created 4 years, 10 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
« 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 154 matching lines...) Expand 10 before | Expand all | Expand 10 after
165 } 165 }
166 166
167 // Utility method to setup an additional stream to send and receive video. 167 // Utility method to setup an additional stream to send and receive video.
168 // Used to test send and recv between two streams. 168 // Used to test send and recv between two streams.
169 void SetUpSecondStream() { 169 void SetUpSecondStream() {
170 SetUpSecondStreamWithNoRecv(); 170 SetUpSecondStreamWithNoRecv();
171 // Setup recv for second stream. 171 // Setup recv for second stream.
172 EXPECT_TRUE(channel_->AddRecvStream( 172 EXPECT_TRUE(channel_->AddRecvStream(
173 cricket::StreamParams::CreateLegacy(kSsrc + 2))); 173 cricket::StreamParams::CreateLegacy(kSsrc + 2)));
174 // Make the second renderer available for use by a new stream. 174 // Make the second renderer available for use by a new stream.
175 EXPECT_TRUE(channel_->SetRenderer(kSsrc + 2, &renderer2_)); 175 EXPECT_TRUE(channel_->SetSink(kSsrc + 2, &renderer2_));
176 } 176 }
177 // Setup an additional stream just to send video. Defer add recv stream. 177 // Setup an additional stream just to send video. Defer add recv stream.
178 // This is required if you want to test unsignalled recv of video rtp packets. 178 // This is required if you want to test unsignalled recv of video rtp packets.
179 void SetUpSecondStreamWithNoRecv() { 179 void SetUpSecondStreamWithNoRecv() {
180 // SetUp() already added kSsrc make sure duplicate SSRCs cant be added. 180 // SetUp() already added kSsrc make sure duplicate SSRCs cant be added.
181 EXPECT_TRUE(channel_->AddRecvStream( 181 EXPECT_TRUE(channel_->AddRecvStream(
182 cricket::StreamParams::CreateLegacy(kSsrc))); 182 cricket::StreamParams::CreateLegacy(kSsrc)));
183 EXPECT_TRUE(channel_->SetRenderer(kSsrc, &renderer_)); 183 EXPECT_TRUE(channel_->SetSink(kSsrc, &renderer_));
184 EXPECT_FALSE(channel_->AddSendStream( 184 EXPECT_FALSE(channel_->AddSendStream(
185 cricket::StreamParams::CreateLegacy(kSsrc))); 185 cricket::StreamParams::CreateLegacy(kSsrc)));
186 EXPECT_TRUE(channel_->AddSendStream( 186 EXPECT_TRUE(channel_->AddSendStream(
187 cricket::StreamParams::CreateLegacy(kSsrc + 2))); 187 cricket::StreamParams::CreateLegacy(kSsrc + 2)));
188 // We dont add recv for the second stream. 188 // We dont add recv for the second stream.
189 189
190 // Setup the receive and renderer for second stream after send. 190 // Setup the receive and renderer for second stream after send.
191 video_capturer_2_.reset(CreateFakeVideoCapturer()); 191 video_capturer_2_.reset(CreateFakeVideoCapturer());
192 cricket::VideoFormat format(640, 480, 192 cricket::VideoFormat format(640, 480,
193 cricket::VideoFormat::FpsToInterval(30), 193 cricket::VideoFormat::FpsToInterval(30),
(...skipping 241 matching lines...) Expand 10 before | Expand all | Expand 10 after
435 EXPECT_TRUE(SetSend(true)); 435 EXPECT_TRUE(SetSend(true));
436 EXPECT_TRUE(SendFrame()); 436 EXPECT_TRUE(SendFrame());
437 EXPECT_TRUE_WAIT(NumRtpPackets() > 0, kTimeout); 437 EXPECT_TRUE_WAIT(NumRtpPackets() > 0, kTimeout);
438 rtc::scoped_ptr<const rtc::Buffer> p(GetRtpPacket(0)); 438 rtc::scoped_ptr<const rtc::Buffer> p(GetRtpPacket(0));
439 EXPECT_EQ(codec.id, GetPayloadType(p.get())); 439 EXPECT_EQ(codec.id, GetPayloadType(p.get()));
440 } 440 }
441 // Tests that we can send and receive frames. 441 // Tests that we can send and receive frames.
442 void SendAndReceive(const cricket::VideoCodec& codec) { 442 void SendAndReceive(const cricket::VideoCodec& codec) {
443 EXPECT_TRUE(SetOneCodec(codec)); 443 EXPECT_TRUE(SetOneCodec(codec));
444 EXPECT_TRUE(SetSend(true)); 444 EXPECT_TRUE(SetSend(true));
445 EXPECT_TRUE(channel_->SetRenderer(kDefaultReceiveSsrc, &renderer_)); 445 EXPECT_TRUE(channel_->SetSink(kDefaultReceiveSsrc, &renderer_));
446 EXPECT_EQ(0, renderer_.num_rendered_frames()); 446 EXPECT_EQ(0, renderer_.num_rendered_frames());
447 EXPECT_TRUE(SendFrame()); 447 EXPECT_TRUE(SendFrame());
448 EXPECT_FRAME_WAIT(1, codec.width, codec.height, kTimeout); 448 EXPECT_FRAME_WAIT(1, codec.width, codec.height, kTimeout);
449 rtc::scoped_ptr<const rtc::Buffer> p(GetRtpPacket(0)); 449 rtc::scoped_ptr<const rtc::Buffer> p(GetRtpPacket(0));
450 EXPECT_EQ(codec.id, GetPayloadType(p.get())); 450 EXPECT_EQ(codec.id, GetPayloadType(p.get()));
451 } 451 }
452 void SendReceiveManyAndGetStats(const cricket::VideoCodec& codec, 452 void SendReceiveManyAndGetStats(const cricket::VideoCodec& codec,
453 int duration_sec, int fps) { 453 int duration_sec, int fps) {
454 EXPECT_TRUE(SetOneCodec(codec)); 454 EXPECT_TRUE(SetOneCodec(codec));
455 EXPECT_TRUE(SetSend(true)); 455 EXPECT_TRUE(SetSend(true));
456 EXPECT_TRUE(channel_->SetRenderer(kDefaultReceiveSsrc, &renderer_)); 456 EXPECT_TRUE(channel_->SetSink(kDefaultReceiveSsrc, &renderer_));
457 EXPECT_EQ(0, renderer_.num_rendered_frames()); 457 EXPECT_EQ(0, renderer_.num_rendered_frames());
458 for (int i = 0; i < duration_sec; ++i) { 458 for (int i = 0; i < duration_sec; ++i) {
459 for (int frame = 1; frame <= fps; ++frame) { 459 for (int frame = 1; frame <= fps; ++frame) {
460 EXPECT_TRUE(WaitAndSendFrame(1000 / fps)); 460 EXPECT_TRUE(WaitAndSendFrame(1000 / fps));
461 EXPECT_FRAME_WAIT(frame + i * fps, codec.width, codec.height, kTimeout); 461 EXPECT_FRAME_WAIT(frame + i * fps, codec.width, codec.height, kTimeout);
462 } 462 }
463 } 463 }
464 rtc::scoped_ptr<const rtc::Buffer> p(GetRtpPacket(0)); 464 rtc::scoped_ptr<const rtc::Buffer> p(GetRtpPacket(0));
465 EXPECT_EQ(codec.id, GetPayloadType(p.get())); 465 EXPECT_EQ(codec.id, GetPayloadType(p.get()));
466 } 466 }
(...skipping 59 matching lines...) Expand 10 before | Expand all | Expand 10 after
526 EXPECT_TRUE(SetOneCodec(DefaultCodec())); 526 EXPECT_TRUE(SetOneCodec(DefaultCodec()));
527 cricket::VideoSendParameters parameters; 527 cricket::VideoSendParameters parameters;
528 parameters.codecs.push_back(DefaultCodec()); 528 parameters.codecs.push_back(DefaultCodec());
529 parameters.options.conference_mode = rtc::Optional<bool>(true); 529 parameters.options.conference_mode = rtc::Optional<bool>(true);
530 EXPECT_TRUE(channel_->SetSendParameters(parameters)); 530 EXPECT_TRUE(channel_->SetSendParameters(parameters));
531 EXPECT_TRUE(SetSend(true)); 531 EXPECT_TRUE(SetSend(true));
532 EXPECT_TRUE(channel_->AddRecvStream( 532 EXPECT_TRUE(channel_->AddRecvStream(
533 cricket::StreamParams::CreateLegacy(1))); 533 cricket::StreamParams::CreateLegacy(1)));
534 EXPECT_TRUE(channel_->AddRecvStream( 534 EXPECT_TRUE(channel_->AddRecvStream(
535 cricket::StreamParams::CreateLegacy(2))); 535 cricket::StreamParams::CreateLegacy(2)));
536 EXPECT_TRUE(channel_->SetRenderer(1, &renderer1)); 536 EXPECT_TRUE(channel_->SetSink(1, &renderer1));
537 EXPECT_TRUE(channel_->SetRenderer(2, &renderer2)); 537 EXPECT_TRUE(channel_->SetSink(2, &renderer2));
538 EXPECT_EQ(0, renderer1.num_rendered_frames()); 538 EXPECT_EQ(0, renderer1.num_rendered_frames());
539 EXPECT_EQ(0, renderer2.num_rendered_frames()); 539 EXPECT_EQ(0, renderer2.num_rendered_frames());
540 std::vector<uint32_t> ssrcs; 540 std::vector<uint32_t> ssrcs;
541 ssrcs.push_back(1); 541 ssrcs.push_back(1);
542 ssrcs.push_back(2); 542 ssrcs.push_back(2);
543 network_interface_.SetConferenceMode(true, ssrcs); 543 network_interface_.SetConferenceMode(true, ssrcs);
544 EXPECT_TRUE(SendFrame()); 544 EXPECT_TRUE(SendFrame());
545 EXPECT_FRAME_ON_RENDERER_WAIT( 545 EXPECT_FRAME_ON_RENDERER_WAIT(
546 renderer1, 1, DefaultCodec().width, DefaultCodec().height, kTimeout); 546 renderer1, 1, DefaultCodec().width, DefaultCodec().height, kTimeout);
547 EXPECT_FRAME_ON_RENDERER_WAIT( 547 EXPECT_FRAME_ON_RENDERER_WAIT(
(...skipping 26 matching lines...) Expand all
574 void GetStatsMultipleSendStreams() { 574 void GetStatsMultipleSendStreams() {
575 // Normal setup; note that we set the SSRC explicitly to ensure that 575 // Normal setup; note that we set the SSRC explicitly to ensure that
576 // it will come first in the senders map. 576 // it will come first in the senders map.
577 EXPECT_TRUE(SetOneCodec(DefaultCodec())); 577 EXPECT_TRUE(SetOneCodec(DefaultCodec()));
578 cricket::VideoSendParameters parameters; 578 cricket::VideoSendParameters parameters;
579 parameters.codecs.push_back(DefaultCodec()); 579 parameters.codecs.push_back(DefaultCodec());
580 parameters.options.conference_mode = rtc::Optional<bool>(true); 580 parameters.options.conference_mode = rtc::Optional<bool>(true);
581 EXPECT_TRUE(channel_->SetSendParameters(parameters)); 581 EXPECT_TRUE(channel_->SetSendParameters(parameters));
582 EXPECT_TRUE(channel_->AddRecvStream( 582 EXPECT_TRUE(channel_->AddRecvStream(
583 cricket::StreamParams::CreateLegacy(kSsrc))); 583 cricket::StreamParams::CreateLegacy(kSsrc)));
584 EXPECT_TRUE(channel_->SetRenderer(kSsrc, &renderer_)); 584 EXPECT_TRUE(channel_->SetSink(kSsrc, &renderer_));
585 EXPECT_TRUE(SetSend(true)); 585 EXPECT_TRUE(SetSend(true));
586 EXPECT_TRUE(SendFrame()); 586 EXPECT_TRUE(SendFrame());
587 EXPECT_TRUE_WAIT(NumRtpPackets() > 0, kTimeout); 587 EXPECT_TRUE_WAIT(NumRtpPackets() > 0, kTimeout);
588 EXPECT_FRAME_WAIT(1, DefaultCodec().width, DefaultCodec().height, kTimeout); 588 EXPECT_FRAME_WAIT(1, DefaultCodec().width, DefaultCodec().height, kTimeout);
589 589
590 // Add an additional capturer, and hook up a renderer to receive it. 590 // Add an additional capturer, and hook up a renderer to receive it.
591 cricket::FakeVideoRenderer renderer2; 591 cricket::FakeVideoRenderer renderer2;
592 rtc::scoped_ptr<cricket::FakeVideoCapturer> capturer( 592 rtc::scoped_ptr<cricket::FakeVideoCapturer> capturer(
593 CreateFakeVideoCapturer()); 593 CreateFakeVideoCapturer());
594 capturer->SetScreencast(true); 594 capturer->SetScreencast(true);
595 const int kTestWidth = 160; 595 const int kTestWidth = 160;
596 const int kTestHeight = 120; 596 const int kTestHeight = 120;
597 cricket::VideoFormat format(kTestWidth, kTestHeight, 597 cricket::VideoFormat format(kTestWidth, kTestHeight,
598 cricket::VideoFormat::FpsToInterval(5), 598 cricket::VideoFormat::FpsToInterval(5),
599 cricket::FOURCC_I420); 599 cricket::FOURCC_I420);
600 EXPECT_EQ(cricket::CS_RUNNING, capturer->Start(format)); 600 EXPECT_EQ(cricket::CS_RUNNING, capturer->Start(format));
601 EXPECT_TRUE(channel_->AddSendStream( 601 EXPECT_TRUE(channel_->AddSendStream(
602 cricket::StreamParams::CreateLegacy(5678))); 602 cricket::StreamParams::CreateLegacy(5678)));
603 EXPECT_TRUE(channel_->SetCapturer(5678, capturer.get())); 603 EXPECT_TRUE(channel_->SetCapturer(5678, capturer.get()));
604 EXPECT_TRUE(channel_->AddRecvStream( 604 EXPECT_TRUE(channel_->AddRecvStream(
605 cricket::StreamParams::CreateLegacy(5678))); 605 cricket::StreamParams::CreateLegacy(5678)));
606 EXPECT_TRUE(channel_->SetRenderer(5678, &renderer2)); 606 EXPECT_TRUE(channel_->SetSink(5678, &renderer2));
607 EXPECT_TRUE(capturer->CaptureCustomFrame( 607 EXPECT_TRUE(capturer->CaptureCustomFrame(
608 kTestWidth, kTestHeight, cricket::FOURCC_I420)); 608 kTestWidth, kTestHeight, cricket::FOURCC_I420));
609 EXPECT_FRAME_ON_RENDERER_WAIT( 609 EXPECT_FRAME_ON_RENDERER_WAIT(
610 renderer2, 1, kTestWidth, kTestHeight, kTimeout); 610 renderer2, 1, kTestWidth, kTestHeight, kTimeout);
611 611
612 // Get stats, and make sure they are correct for two senders. We wait until 612 // Get stats, and make sure they are correct for two senders. We wait until
613 // the number of expected packets have been sent to avoid races where we 613 // the number of expected packets have been sent to avoid races where we
614 // check stats before it has been updated. 614 // check stats before it has been updated.
615 cricket::VideoMediaInfo info; 615 cricket::VideoMediaInfo info;
616 for (uint32_t i = 0; i < kTimeout; ++i) { 616 for (uint32_t i = 0; i < kTimeout; ++i) {
(...skipping 67 matching lines...) Expand 10 before | Expand all | Expand 10 after
684 // Packets are being paced out, so these can mismatch between the first and 684 // Packets are being paced out, so these can mismatch between the first and
685 // second call to NumRtpPackets until pending packets are paced out. 685 // second call to NumRtpPackets until pending packets are paced out.
686 EXPECT_EQ_WAIT(NumRtpPackets(), NumRtpPackets(ssrc), kTimeout); 686 EXPECT_EQ_WAIT(NumRtpPackets(), NumRtpPackets(ssrc), kTimeout);
687 EXPECT_EQ_WAIT(NumRtpBytes(), NumRtpBytes(ssrc), kTimeout); 687 EXPECT_EQ_WAIT(NumRtpBytes(), NumRtpBytes(ssrc), kTimeout);
688 EXPECT_EQ(1, NumSentSsrcs()); 688 EXPECT_EQ(1, NumSentSsrcs());
689 EXPECT_EQ(0, NumRtpPackets(kSsrc)); 689 EXPECT_EQ(0, NumRtpPackets(kSsrc));
690 EXPECT_EQ(0, NumRtpBytes(kSsrc)); 690 EXPECT_EQ(0, NumRtpBytes(kSsrc));
691 } 691 }
692 // Test that we can set the default video renderer before and after 692 // Test that we can set the default video renderer before and after
693 // media is received. 693 // media is received.
694 void SetRenderer() { 694 void SetSink() {
695 uint8_t data1[] = { 695 uint8_t data1[] = {
696 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}; 696 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00};
697 697
698 rtc::Buffer packet1(data1, sizeof(data1)); 698 rtc::Buffer packet1(data1, sizeof(data1));
699 rtc::SetBE32(packet1.data() + 8, kSsrc); 699 rtc::SetBE32(packet1.data() + 8, kSsrc);
700 channel_->SetRenderer(kDefaultReceiveSsrc, NULL); 700 channel_->SetSink(kDefaultReceiveSsrc, NULL);
701 EXPECT_TRUE(SetDefaultCodec()); 701 EXPECT_TRUE(SetDefaultCodec());
702 EXPECT_TRUE(SetSend(true)); 702 EXPECT_TRUE(SetSend(true));
703 EXPECT_EQ(0, renderer_.num_rendered_frames()); 703 EXPECT_EQ(0, renderer_.num_rendered_frames());
704 channel_->OnPacketReceived(&packet1, rtc::PacketTime()); 704 channel_->OnPacketReceived(&packet1, rtc::PacketTime());
705 EXPECT_TRUE(channel_->SetRenderer(kDefaultReceiveSsrc, &renderer_)); 705 EXPECT_TRUE(channel_->SetSink(kDefaultReceiveSsrc, &renderer_));
706 EXPECT_TRUE(SendFrame()); 706 EXPECT_TRUE(SendFrame());
707 EXPECT_FRAME_WAIT(1, DefaultCodec().width, DefaultCodec().height, kTimeout); 707 EXPECT_FRAME_WAIT(1, DefaultCodec().width, DefaultCodec().height, kTimeout);
708 } 708 }
709 709
710 // Tests empty StreamParams is rejected. 710 // Tests empty StreamParams is rejected.
711 void RejectEmptyStreamParams() { 711 void RejectEmptyStreamParams() {
712 // Remove the send stream that was added during Setup. 712 // Remove the send stream that was added during Setup.
713 EXPECT_TRUE(channel_->RemoveSendStream(kSsrc)); 713 EXPECT_TRUE(channel_->RemoveSendStream(kSsrc));
714 714
715 cricket::StreamParams empty; 715 cricket::StreamParams empty;
716 EXPECT_FALSE(channel_->AddSendStream(empty)); 716 EXPECT_FALSE(channel_->AddSendStream(empty));
717 EXPECT_TRUE(channel_->AddSendStream( 717 EXPECT_TRUE(channel_->AddSendStream(
718 cricket::StreamParams::CreateLegacy(789u))); 718 cricket::StreamParams::CreateLegacy(789u)));
719 } 719 }
720 720
721 // Tests setting up and configuring a send stream. 721 // Tests setting up and configuring a send stream.
722 void AddRemoveSendStreams() { 722 void AddRemoveSendStreams() {
723 EXPECT_TRUE(SetOneCodec(DefaultCodec())); 723 EXPECT_TRUE(SetOneCodec(DefaultCodec()));
724 EXPECT_TRUE(SetSend(true)); 724 EXPECT_TRUE(SetSend(true));
725 EXPECT_TRUE(channel_->SetRenderer(kDefaultReceiveSsrc, &renderer_)); 725 EXPECT_TRUE(channel_->SetSink(kDefaultReceiveSsrc, &renderer_));
726 EXPECT_TRUE(SendFrame()); 726 EXPECT_TRUE(SendFrame());
727 EXPECT_FRAME_WAIT(1, DefaultCodec().width, DefaultCodec().height, kTimeout); 727 EXPECT_FRAME_WAIT(1, DefaultCodec().width, DefaultCodec().height, kTimeout);
728 EXPECT_GT(NumRtpPackets(), 0); 728 EXPECT_GT(NumRtpPackets(), 0);
729 uint32_t ssrc = 0; 729 uint32_t ssrc = 0;
730 size_t last_packet = NumRtpPackets() - 1; 730 size_t last_packet = NumRtpPackets() - 1;
731 rtc::scoped_ptr<const rtc::Buffer> 731 rtc::scoped_ptr<const rtc::Buffer>
732 p(GetRtpPacket(static_cast<int>(last_packet))); 732 p(GetRtpPacket(static_cast<int>(last_packet)));
733 ParseRtpPacket(p.get(), NULL, NULL, NULL, NULL, &ssrc, NULL); 733 ParseRtpPacket(p.get(), NULL, NULL, NULL, NULL, &ssrc, NULL);
734 EXPECT_EQ(kSsrc, ssrc); 734 EXPECT_EQ(kSsrc, ssrc);
735 735
(...skipping 21 matching lines...) Expand all
757 EXPECT_TRUE(SetDefaultCodec()); 757 EXPECT_TRUE(SetDefaultCodec());
758 cricket::VideoSendParameters parameters; 758 cricket::VideoSendParameters parameters;
759 parameters.codecs.push_back(DefaultCodec()); 759 parameters.codecs.push_back(DefaultCodec());
760 parameters.options.conference_mode = rtc::Optional<bool>(true); 760 parameters.options.conference_mode = rtc::Optional<bool>(true);
761 EXPECT_TRUE(channel_->SetSendParameters(parameters)); 761 EXPECT_TRUE(channel_->SetSendParameters(parameters));
762 EXPECT_TRUE(SetSend(true)); 762 EXPECT_TRUE(SetSend(true));
763 EXPECT_TRUE(channel_->AddRecvStream( 763 EXPECT_TRUE(channel_->AddRecvStream(
764 cricket::StreamParams::CreateLegacy(1))); 764 cricket::StreamParams::CreateLegacy(1)));
765 EXPECT_TRUE(channel_->AddRecvStream( 765 EXPECT_TRUE(channel_->AddRecvStream(
766 cricket::StreamParams::CreateLegacy(2))); 766 cricket::StreamParams::CreateLegacy(2)));
767 EXPECT_TRUE(channel_->SetRenderer(1, &renderer1)); 767 EXPECT_TRUE(channel_->SetSink(1, &renderer1));
768 EXPECT_TRUE(channel_->SetRenderer(2, &renderer2)); 768 EXPECT_TRUE(channel_->SetSink(2, &renderer2));
769 EXPECT_EQ(0, renderer1.num_rendered_frames()); 769 EXPECT_EQ(0, renderer1.num_rendered_frames());
770 EXPECT_EQ(0, renderer2.num_rendered_frames()); 770 EXPECT_EQ(0, renderer2.num_rendered_frames());
771 std::vector<uint32_t> ssrcs; 771 std::vector<uint32_t> ssrcs;
772 ssrcs.push_back(1); 772 ssrcs.push_back(1);
773 ssrcs.push_back(2); 773 ssrcs.push_back(2);
774 network_interface_.SetConferenceMode(true, ssrcs); 774 network_interface_.SetConferenceMode(true, ssrcs);
775 EXPECT_TRUE(SendFrame()); 775 EXPECT_TRUE(SendFrame());
776 EXPECT_FRAME_ON_RENDERER_WAIT( 776 EXPECT_FRAME_ON_RENDERER_WAIT(
777 renderer1, 1, DefaultCodec().width, DefaultCodec().height, kTimeout); 777 renderer1, 1, DefaultCodec().width, DefaultCodec().height, kTimeout);
778 EXPECT_FRAME_ON_RENDERER_WAIT( 778 EXPECT_FRAME_ON_RENDERER_WAIT(
(...skipping 10 matching lines...) Expand all
789 } 789 }
790 790
791 // Tests that we can add and remove capturers and frames are sent out properly 791 // Tests that we can add and remove capturers and frames are sent out properly
792 void AddRemoveCapturer() { 792 void AddRemoveCapturer() {
793 cricket::VideoCodec codec = DefaultCodec(); 793 cricket::VideoCodec codec = DefaultCodec();
794 codec.width = 320; 794 codec.width = 320;
795 codec.height = 240; 795 codec.height = 240;
796 const int time_between_send = TimeBetweenSend(codec); 796 const int time_between_send = TimeBetweenSend(codec);
797 EXPECT_TRUE(SetOneCodec(codec)); 797 EXPECT_TRUE(SetOneCodec(codec));
798 EXPECT_TRUE(SetSend(true)); 798 EXPECT_TRUE(SetSend(true));
799 EXPECT_TRUE(channel_->SetRenderer(kDefaultReceiveSsrc, &renderer_)); 799 EXPECT_TRUE(channel_->SetSink(kDefaultReceiveSsrc, &renderer_));
800 EXPECT_EQ(0, renderer_.num_rendered_frames()); 800 EXPECT_EQ(0, renderer_.num_rendered_frames());
801 EXPECT_TRUE(SendFrame()); 801 EXPECT_TRUE(SendFrame());
802 EXPECT_FRAME_WAIT(1, codec.width, codec.height, kTimeout); 802 EXPECT_FRAME_WAIT(1, codec.width, codec.height, kTimeout);
803 rtc::scoped_ptr<cricket::FakeVideoCapturer> capturer( 803 rtc::scoped_ptr<cricket::FakeVideoCapturer> capturer(
804 CreateFakeVideoCapturer()); 804 CreateFakeVideoCapturer());
805 capturer->SetScreencast(true); 805 capturer->SetScreencast(true);
806 cricket::VideoFormat format(480, 360, 806 cricket::VideoFormat format(480, 360,
807 cricket::VideoFormat::FpsToInterval(30), 807 cricket::VideoFormat::FpsToInterval(30),
808 cricket::FOURCC_I420); 808 cricket::FOURCC_I420);
809 EXPECT_EQ(cricket::CS_RUNNING, capturer->Start(format)); 809 EXPECT_EQ(cricket::CS_RUNNING, capturer->Start(format));
(...skipping 40 matching lines...) Expand 10 before | Expand all | Expand 10 after
850 EXPECT_TRUE(capturer->CaptureCustomFrame(format.width, format.height, 850 EXPECT_TRUE(capturer->CaptureCustomFrame(format.width, format.height,
851 cricket::FOURCC_I420)); 851 cricket::FOURCC_I420));
852 } 852 }
853 } 853 }
854 854
855 // Tests that if RemoveCapturer is called without a capturer ever being 855 // Tests that if RemoveCapturer is called without a capturer ever being
856 // added, the plugin shouldn't crash (and no black frame should be sent). 856 // added, the plugin shouldn't crash (and no black frame should be sent).
857 void RemoveCapturerWithoutAdd() { 857 void RemoveCapturerWithoutAdd() {
858 EXPECT_TRUE(SetOneCodec(DefaultCodec())); 858 EXPECT_TRUE(SetOneCodec(DefaultCodec()));
859 EXPECT_TRUE(SetSend(true)); 859 EXPECT_TRUE(SetSend(true));
860 EXPECT_TRUE(channel_->SetRenderer(kDefaultReceiveSsrc, &renderer_)); 860 EXPECT_TRUE(channel_->SetSink(kDefaultReceiveSsrc, &renderer_));
861 EXPECT_EQ(0, renderer_.num_rendered_frames()); 861 EXPECT_EQ(0, renderer_.num_rendered_frames());
862 EXPECT_TRUE(SendFrame()); 862 EXPECT_TRUE(SendFrame());
863 EXPECT_FRAME_WAIT(1, 640, 400, kTimeout); 863 EXPECT_FRAME_WAIT(1, 640, 400, kTimeout);
864 // Wait for one frame so they don't get dropped because we send frames too 864 // Wait for one frame so they don't get dropped because we send frames too
865 // tightly. 865 // tightly.
866 rtc::Thread::Current()->ProcessMessages(30); 866 rtc::Thread::Current()->ProcessMessages(30);
867 // Remove the capturer. 867 // Remove the capturer.
868 EXPECT_TRUE(channel_->SetCapturer(kSsrc, NULL)); 868 EXPECT_TRUE(channel_->SetCapturer(kSsrc, NULL));
869 // Wait for one black frame for removing the capturer. 869 // Wait for one black frame for removing the capturer.
870 EXPECT_FRAME_WAIT(2, 640, 400, kTimeout); 870 EXPECT_FRAME_WAIT(2, 640, 400, kTimeout);
871 871
872 // No capturer was added, so this RemoveCapturer should 872 // No capturer was added, so this RemoveCapturer should
873 // fail. 873 // fail.
874 EXPECT_FALSE(channel_->SetCapturer(kSsrc, NULL)); 874 EXPECT_FALSE(channel_->SetCapturer(kSsrc, NULL));
875 rtc::Thread::Current()->ProcessMessages(300); 875 rtc::Thread::Current()->ProcessMessages(300);
876 // Verify no more frames were sent. 876 // Verify no more frames were sent.
877 EXPECT_EQ(2, renderer_.num_rendered_frames()); 877 EXPECT_EQ(2, renderer_.num_rendered_frames());
878 } 878 }
879 879
880 // Tests that we can add and remove capturer as unique sources. 880 // Tests that we can add and remove capturer as unique sources.
881 void AddRemoveCapturerMultipleSources() { 881 void AddRemoveCapturerMultipleSources() {
882 // WebRTC implementation will drop frames if pushed to quickly. Wait the 882 // WebRTC implementation will drop frames if pushed to quickly. Wait the
883 // interval time to avoid that. 883 // interval time to avoid that.
884 // WebRTC implementation will drop frames if pushed to quickly. Wait the 884 // WebRTC implementation will drop frames if pushed to quickly. Wait the
885 // interval time to avoid that. 885 // interval time to avoid that.
886 // Set up the stream associated with the engine. 886 // Set up the stream associated with the engine.
887 EXPECT_TRUE(channel_->AddRecvStream( 887 EXPECT_TRUE(channel_->AddRecvStream(
888 cricket::StreamParams::CreateLegacy(kSsrc))); 888 cricket::StreamParams::CreateLegacy(kSsrc)));
889 EXPECT_TRUE(channel_->SetRenderer(kSsrc, &renderer_)); 889 EXPECT_TRUE(channel_->SetSink(kSsrc, &renderer_));
890 cricket::VideoFormat capture_format; // default format 890 cricket::VideoFormat capture_format; // default format
891 capture_format.interval = cricket::VideoFormat::FpsToInterval(30); 891 capture_format.interval = cricket::VideoFormat::FpsToInterval(30);
892 // Set up additional stream 1. 892 // Set up additional stream 1.
893 cricket::FakeVideoRenderer renderer1; 893 cricket::FakeVideoRenderer renderer1;
894 EXPECT_FALSE(channel_->SetRenderer(1, &renderer1)); 894 EXPECT_FALSE(channel_->SetSink(1, &renderer1));
895 EXPECT_TRUE(channel_->AddRecvStream( 895 EXPECT_TRUE(channel_->AddRecvStream(
896 cricket::StreamParams::CreateLegacy(1))); 896 cricket::StreamParams::CreateLegacy(1)));
897 EXPECT_TRUE(channel_->SetRenderer(1, &renderer1)); 897 EXPECT_TRUE(channel_->SetSink(1, &renderer1));
898 EXPECT_TRUE(channel_->AddSendStream( 898 EXPECT_TRUE(channel_->AddSendStream(
899 cricket::StreamParams::CreateLegacy(1))); 899 cricket::StreamParams::CreateLegacy(1)));
900 rtc::scoped_ptr<cricket::FakeVideoCapturer> capturer1( 900 rtc::scoped_ptr<cricket::FakeVideoCapturer> capturer1(
901 CreateFakeVideoCapturer()); 901 CreateFakeVideoCapturer());
902 capturer1->SetScreencast(true); 902 capturer1->SetScreencast(true);
903 EXPECT_EQ(cricket::CS_RUNNING, capturer1->Start(capture_format)); 903 EXPECT_EQ(cricket::CS_RUNNING, capturer1->Start(capture_format));
904 // Set up additional stream 2. 904 // Set up additional stream 2.
905 cricket::FakeVideoRenderer renderer2; 905 cricket::FakeVideoRenderer renderer2;
906 EXPECT_FALSE(channel_->SetRenderer(2, &renderer2)); 906 EXPECT_FALSE(channel_->SetSink(2, &renderer2));
907 EXPECT_TRUE(channel_->AddRecvStream( 907 EXPECT_TRUE(channel_->AddRecvStream(
908 cricket::StreamParams::CreateLegacy(2))); 908 cricket::StreamParams::CreateLegacy(2)));
909 EXPECT_TRUE(channel_->SetRenderer(2, &renderer2)); 909 EXPECT_TRUE(channel_->SetSink(2, &renderer2));
910 EXPECT_TRUE(channel_->AddSendStream( 910 EXPECT_TRUE(channel_->AddSendStream(
911 cricket::StreamParams::CreateLegacy(2))); 911 cricket::StreamParams::CreateLegacy(2)));
912 rtc::scoped_ptr<cricket::FakeVideoCapturer> capturer2( 912 rtc::scoped_ptr<cricket::FakeVideoCapturer> capturer2(
913 CreateFakeVideoCapturer()); 913 CreateFakeVideoCapturer());
914 capturer2->SetScreencast(true); 914 capturer2->SetScreencast(true);
915 EXPECT_EQ(cricket::CS_RUNNING, capturer2->Start(capture_format)); 915 EXPECT_EQ(cricket::CS_RUNNING, capturer2->Start(capture_format));
916 // State for all the streams. 916 // State for all the streams.
917 EXPECT_TRUE(SetOneCodec(DefaultCodec())); 917 EXPECT_TRUE(SetOneCodec(DefaultCodec()));
918 // A limitation in the lmi implementation requires that SetCapturer() is 918 // A limitation in the lmi implementation requires that SetCapturer() is
919 // called after SetOneCodec(). 919 // called after SetOneCodec().
(...skipping 29 matching lines...) Expand all
949 const int kScaledWidth = 20; 949 const int kScaledWidth = 20;
950 const int kScaledHeight = 2500; 950 const int kScaledHeight = 2500;
951 951
952 cricket::VideoCodec codec(DefaultCodec()); 952 cricket::VideoCodec codec(DefaultCodec());
953 EXPECT_TRUE(SetOneCodec(codec)); 953 EXPECT_TRUE(SetOneCodec(codec));
954 EXPECT_TRUE(SetSend(true)); 954 EXPECT_TRUE(SetSend(true));
955 955
956 cricket::FakeVideoRenderer renderer; 956 cricket::FakeVideoRenderer renderer;
957 EXPECT_TRUE(channel_->AddRecvStream( 957 EXPECT_TRUE(channel_->AddRecvStream(
958 cricket::StreamParams::CreateLegacy(kSsrc))); 958 cricket::StreamParams::CreateLegacy(kSsrc)));
959 EXPECT_TRUE(channel_->SetRenderer(kSsrc, &renderer)); 959 EXPECT_TRUE(channel_->SetSink(kSsrc, &renderer));
960 EXPECT_EQ(0, renderer.num_rendered_frames()); 960 EXPECT_EQ(0, renderer.num_rendered_frames());
961 961
962 EXPECT_TRUE(SendFrame()); 962 EXPECT_TRUE(SendFrame());
963 EXPECT_GT_FRAME_ON_RENDERER_WAIT( 963 EXPECT_GT_FRAME_ON_RENDERER_WAIT(
964 renderer, 1, codec.width, codec.height, kTimeout); 964 renderer, 1, codec.width, codec.height, kTimeout);
965 965
966 // Registering an external capturer is currently the same as screen casting 966 // Registering an external capturer is currently the same as screen casting
967 // (update the test when this changes). 967 // (update the test when this changes).
968 rtc::scoped_ptr<cricket::FakeVideoCapturer> capturer( 968 rtc::scoped_ptr<cricket::FakeVideoCapturer> capturer(
969 CreateFakeVideoCapturer()); 969 CreateFakeVideoCapturer());
970 capturer->SetScreencast(true); 970 capturer->SetScreencast(true);
971 const std::vector<cricket::VideoFormat>* formats = 971 const std::vector<cricket::VideoFormat>* formats =
972 capturer->GetSupportedFormats(); 972 capturer->GetSupportedFormats();
973 cricket::VideoFormat capture_format = (*formats)[0]; 973 cricket::VideoFormat capture_format = (*formats)[0];
974 EXPECT_EQ(cricket::CS_RUNNING, capturer->Start(capture_format)); 974 EXPECT_EQ(cricket::CS_RUNNING, capturer->Start(capture_format));
975 // Capture frame to not get same frame timestamps as previous capturer. 975 // Capture frame to not get same frame timestamps as previous capturer.
976 capturer->CaptureFrame(); 976 capturer->CaptureFrame();
977 EXPECT_TRUE(channel_->SetCapturer(kSsrc, capturer.get())); 977 EXPECT_TRUE(channel_->SetCapturer(kSsrc, capturer.get()));
978 EXPECT_TRUE(rtc::Thread::Current()->ProcessMessages(30)); 978 EXPECT_TRUE(rtc::Thread::Current()->ProcessMessages(30));
979 EXPECT_TRUE(capturer->CaptureCustomFrame(kWidth, kHeight, 979 EXPECT_TRUE(capturer->CaptureCustomFrame(kWidth, kHeight,
980 cricket::FOURCC_ARGB)); 980 cricket::FOURCC_ARGB));
981 EXPECT_GT_FRAME_ON_RENDERER_WAIT( 981 EXPECT_GT_FRAME_ON_RENDERER_WAIT(
982 renderer, 2, kScaledWidth, kScaledHeight, kTimeout); 982 renderer, 2, kScaledWidth, kScaledHeight, kTimeout);
983 EXPECT_TRUE(channel_->SetCapturer(kSsrc, NULL)); 983 EXPECT_TRUE(channel_->SetCapturer(kSsrc, NULL));
984 } 984 }
985 985
986 // Tests that we can adapt video resolution with 16:10 aspect ratio properly. 986 // Tests that we can adapt video resolution with 16:10 aspect ratio properly.
987 void AdaptResolution16x10() { 987 void AdaptResolution16x10() {
988 EXPECT_TRUE(channel_->SetRenderer(kDefaultReceiveSsrc, &renderer_)); 988 EXPECT_TRUE(channel_->SetSink(kDefaultReceiveSsrc, &renderer_));
989 cricket::VideoCodec codec(DefaultCodec()); 989 cricket::VideoCodec codec(DefaultCodec());
990 codec.width = 640; 990 codec.width = 640;
991 codec.height = 400; 991 codec.height = 400;
992 SendAndReceive(codec); 992 SendAndReceive(codec);
993 codec.width /= 2; 993 codec.width /= 2;
994 codec.height /= 2; 994 codec.height /= 2;
995 // Adapt the resolution. 995 // Adapt the resolution.
996 EXPECT_TRUE(SetOneCodec(codec)); 996 EXPECT_TRUE(SetOneCodec(codec));
997 EXPECT_TRUE(WaitAndSendFrame(30)); 997 EXPECT_TRUE(WaitAndSendFrame(30));
998 EXPECT_FRAME_WAIT(2, codec.width, codec.height, kTimeout); 998 EXPECT_FRAME_WAIT(2, codec.width, codec.height, kTimeout);
999 } 999 }
1000 // Tests that we can adapt video resolution with 4:3 aspect ratio properly. 1000 // Tests that we can adapt video resolution with 4:3 aspect ratio properly.
1001 void AdaptResolution4x3() { 1001 void AdaptResolution4x3() {
1002 EXPECT_TRUE(channel_->SetRenderer(kDefaultReceiveSsrc, &renderer_)); 1002 EXPECT_TRUE(channel_->SetSink(kDefaultReceiveSsrc, &renderer_));
1003 cricket::VideoCodec codec(DefaultCodec()); 1003 cricket::VideoCodec codec(DefaultCodec());
1004 codec.width = 640; 1004 codec.width = 640;
1005 codec.height = 400; 1005 codec.height = 400;
1006 SendAndReceive(codec); 1006 SendAndReceive(codec);
1007 codec.width /= 2; 1007 codec.width /= 2;
1008 codec.height /= 2; 1008 codec.height /= 2;
1009 // Adapt the resolution. 1009 // Adapt the resolution.
1010 EXPECT_TRUE(SetOneCodec(codec)); 1010 EXPECT_TRUE(SetOneCodec(codec));
1011 EXPECT_TRUE(WaitAndSendFrame(30)); 1011 EXPECT_TRUE(WaitAndSendFrame(30));
1012 EXPECT_FRAME_WAIT(2, codec.width, codec.height, kTimeout); 1012 EXPECT_FRAME_WAIT(2, codec.width, codec.height, kTimeout);
1013 } 1013 }
1014 // Tests that we can drop all frames properly. 1014 // Tests that we can drop all frames properly.
1015 void AdaptDropAllFrames() { 1015 void AdaptDropAllFrames() {
1016 // Set the channel codec's resolution to 0, which will require the adapter 1016 // Set the channel codec's resolution to 0, which will require the adapter
1017 // to drop all frames. 1017 // to drop all frames.
1018 cricket::VideoCodec codec(DefaultCodec()); 1018 cricket::VideoCodec codec(DefaultCodec());
1019 codec.width = codec.height = codec.framerate = 0; 1019 codec.width = codec.height = codec.framerate = 0;
1020 EXPECT_TRUE(SetOneCodec(codec)); 1020 EXPECT_TRUE(SetOneCodec(codec));
1021 EXPECT_TRUE(SetSend(true)); 1021 EXPECT_TRUE(SetSend(true));
1022 EXPECT_TRUE(channel_->SetRenderer(kDefaultReceiveSsrc, &renderer_)); 1022 EXPECT_TRUE(channel_->SetSink(kDefaultReceiveSsrc, &renderer_));
1023 EXPECT_EQ(0, renderer_.num_rendered_frames()); 1023 EXPECT_EQ(0, renderer_.num_rendered_frames());
1024 EXPECT_TRUE(SendFrame()); 1024 EXPECT_TRUE(SendFrame());
1025 EXPECT_TRUE(SendFrame()); 1025 EXPECT_TRUE(SendFrame());
1026 rtc::Thread::Current()->ProcessMessages(500); 1026 rtc::Thread::Current()->ProcessMessages(500);
1027 EXPECT_EQ(0, renderer_.num_rendered_frames()); 1027 EXPECT_EQ(0, renderer_.num_rendered_frames());
1028 } 1028 }
1029 // Tests that we can reduce the frame rate on demand properly. 1029 // Tests that we can reduce the frame rate on demand properly.
1030 // TODO(fbarchard): This test is flakey on pulse. Fix and re-enable 1030 // TODO(fbarchard): This test is flakey on pulse. Fix and re-enable
1031 void AdaptFramerate() { 1031 void AdaptFramerate() {
1032 cricket::VideoCodec codec(DefaultCodec()); 1032 cricket::VideoCodec codec(DefaultCodec());
(...skipping 39 matching lines...) Expand 10 before | Expand all | Expand 10 after
1072 frame_count += 2; 1072 frame_count += 2;
1073 EXPECT_EQ_WAIT(frame_count, renderer_.num_rendered_frames(), kTimeout); 1073 EXPECT_EQ_WAIT(frame_count, renderer_.num_rendered_frames(), kTimeout);
1074 } 1074 }
1075 // Tests that adapted frames won't be upscaled to a higher resolution. 1075 // Tests that adapted frames won't be upscaled to a higher resolution.
1076 void SendsLowerResolutionOnSmallerFrames() { 1076 void SendsLowerResolutionOnSmallerFrames() {
1077 cricket::VideoCodec codec = DefaultCodec(); 1077 cricket::VideoCodec codec = DefaultCodec();
1078 codec.width = 320; 1078 codec.width = 320;
1079 codec.height = 240; 1079 codec.height = 240;
1080 EXPECT_TRUE(SetOneCodec(codec)); 1080 EXPECT_TRUE(SetOneCodec(codec));
1081 EXPECT_TRUE(SetSend(true)); 1081 EXPECT_TRUE(SetSend(true));
1082 EXPECT_TRUE(channel_->SetRenderer(kDefaultReceiveSsrc, &renderer_)); 1082 EXPECT_TRUE(channel_->SetSink(kDefaultReceiveSsrc, &renderer_));
1083 EXPECT_EQ(0, renderer_.num_rendered_frames()); 1083 EXPECT_EQ(0, renderer_.num_rendered_frames());
1084 EXPECT_TRUE(SendFrame()); 1084 EXPECT_TRUE(SendFrame());
1085 EXPECT_FRAME_WAIT(1, codec.width, codec.height, kTimeout); 1085 EXPECT_FRAME_WAIT(1, codec.width, codec.height, kTimeout);
1086 1086
1087 // Check that we send smaller frames at the new resolution. 1087 // Check that we send smaller frames at the new resolution.
1088 EXPECT_TRUE(rtc::Thread::Current()->ProcessMessages(33)); 1088 EXPECT_TRUE(rtc::Thread::Current()->ProcessMessages(33));
1089 EXPECT_TRUE(video_capturer_->CaptureCustomFrame( 1089 EXPECT_TRUE(video_capturer_->CaptureCustomFrame(
1090 codec.width / 2, codec.height / 2, cricket::FOURCC_I420)); 1090 codec.width / 2, codec.height / 2, cricket::FOURCC_I420));
1091 EXPECT_FRAME_WAIT(2, codec.width / 2, codec.height / 2, kTimeout); 1091 EXPECT_FRAME_WAIT(2, codec.width / 2, codec.height / 2, kTimeout);
1092 } 1092 }
1093 1093
1094 // Tests that we can mute and unmute the channel properly. 1094 // Tests that we can mute and unmute the channel properly.
1095 void MuteStream() { 1095 void MuteStream() {
1096 EXPECT_TRUE(SetDefaultCodec()); 1096 EXPECT_TRUE(SetDefaultCodec());
1097 cricket::FakeVideoCapturer video_capturer; 1097 cricket::FakeVideoCapturer video_capturer;
1098 video_capturer.Start( 1098 video_capturer.Start(
1099 cricket::VideoFormat( 1099 cricket::VideoFormat(
1100 640, 480, 1100 640, 480,
1101 cricket::VideoFormat::FpsToInterval(30), 1101 cricket::VideoFormat::FpsToInterval(30),
1102 cricket::FOURCC_I420)); 1102 cricket::FOURCC_I420));
1103 EXPECT_TRUE(channel_->SetCapturer(kSsrc, &video_capturer)); 1103 EXPECT_TRUE(channel_->SetCapturer(kSsrc, &video_capturer));
1104 EXPECT_TRUE(SetSend(true)); 1104 EXPECT_TRUE(SetSend(true));
1105 EXPECT_TRUE(channel_->SetRenderer(kDefaultReceiveSsrc, &renderer_)); 1105 EXPECT_TRUE(channel_->SetSink(kDefaultReceiveSsrc, &renderer_));
1106 EXPECT_EQ(0, renderer_.num_rendered_frames()); 1106 EXPECT_EQ(0, renderer_.num_rendered_frames());
1107 // Mute the channel and expect black output frame. 1107 // Mute the channel and expect black output frame.
1108 int frame_count = 0; 1108 int frame_count = 0;
1109 EXPECT_TRUE(channel_->SetVideoSend(kSsrc, false, nullptr)); 1109 EXPECT_TRUE(channel_->SetVideoSend(kSsrc, false, nullptr));
1110 EXPECT_TRUE(video_capturer.CaptureFrame()); 1110 EXPECT_TRUE(video_capturer.CaptureFrame());
1111 ++frame_count; 1111 ++frame_count;
1112 EXPECT_EQ_WAIT(frame_count, renderer_.num_rendered_frames(), kTimeout); 1112 EXPECT_EQ_WAIT(frame_count, renderer_.num_rendered_frames(), kTimeout);
1113 EXPECT_TRUE(renderer_.black_frame()); 1113 EXPECT_TRUE(renderer_.black_frame());
1114 // Unmute the channel and expect non-black output frame. 1114 // Unmute the channel and expect non-black output frame.
1115 EXPECT_TRUE(channel_->SetVideoSend(kSsrc, true, nullptr)); 1115 EXPECT_TRUE(channel_->SetVideoSend(kSsrc, true, nullptr));
(...skipping 73 matching lines...) Expand 10 before | Expand all | Expand 10 after
1189 EXPECT_EQ(0u, channel_->GetDefaultSendChannelSsrc()); 1189 EXPECT_EQ(0u, channel_->GetDefaultSendChannelSsrc());
1190 uint32_t new_ssrc = kSsrc + 100; 1190 uint32_t new_ssrc = kSsrc + 100;
1191 EXPECT_TRUE(channel_->AddSendStream( 1191 EXPECT_TRUE(channel_->AddSendStream(
1192 cricket::StreamParams::CreateLegacy(new_ssrc))); 1192 cricket::StreamParams::CreateLegacy(new_ssrc)));
1193 // Re-use default channel. 1193 // Re-use default channel.
1194 EXPECT_EQ(new_ssrc, channel_->GetDefaultSendChannelSsrc()); 1194 EXPECT_EQ(new_ssrc, channel_->GetDefaultSendChannelSsrc());
1195 EXPECT_FALSE(channel_->AddSendStream( 1195 EXPECT_FALSE(channel_->AddSendStream(
1196 cricket::StreamParams::CreateLegacy(new_ssrc))); 1196 cricket::StreamParams::CreateLegacy(new_ssrc)));
1197 EXPECT_TRUE(channel_->AddRecvStream( 1197 EXPECT_TRUE(channel_->AddRecvStream(
1198 cricket::StreamParams::CreateLegacy(new_ssrc))); 1198 cricket::StreamParams::CreateLegacy(new_ssrc)));
1199 EXPECT_TRUE(channel_->SetRenderer(new_ssrc, &renderer_)); 1199 EXPECT_TRUE(channel_->SetSink(new_ssrc, &renderer_));
1200 EXPECT_FALSE(channel_->AddRecvStream( 1200 EXPECT_FALSE(channel_->AddRecvStream(
1201 cricket::StreamParams::CreateLegacy(new_ssrc))); 1201 cricket::StreamParams::CreateLegacy(new_ssrc)));
1202 1202
1203 EXPECT_TRUE(channel_->SetCapturer(new_ssrc, video_capturer_.get())); 1203 EXPECT_TRUE(channel_->SetCapturer(new_ssrc, video_capturer_.get()));
1204 1204
1205 SendAndReceive(codec); 1205 SendAndReceive(codec);
1206 EXPECT_TRUE(channel_->RemoveSendStream(new_ssrc)); 1206 EXPECT_TRUE(channel_->RemoveSendStream(new_ssrc));
1207 EXPECT_EQ(0u, channel_->GetDefaultSendChannelSsrc()); 1207 EXPECT_EQ(0u, channel_->GetDefaultSendChannelSsrc());
1208 } 1208 }
1209 1209
1210 const rtc::scoped_ptr<webrtc::Call> call_; 1210 const rtc::scoped_ptr<webrtc::Call> call_;
1211 VideoEngineOverride<E> engine_; 1211 VideoEngineOverride<E> engine_;
1212 rtc::scoped_ptr<cricket::FakeVideoCapturer> video_capturer_; 1212 rtc::scoped_ptr<cricket::FakeVideoCapturer> video_capturer_;
1213 rtc::scoped_ptr<cricket::FakeVideoCapturer> video_capturer_2_; 1213 rtc::scoped_ptr<cricket::FakeVideoCapturer> video_capturer_2_;
1214 rtc::scoped_ptr<C> channel_; 1214 rtc::scoped_ptr<C> channel_;
1215 cricket::FakeNetworkInterface network_interface_; 1215 cricket::FakeNetworkInterface network_interface_;
1216 cricket::FakeVideoRenderer renderer_; 1216 cricket::FakeVideoRenderer renderer_;
1217 cricket::VideoMediaChannel::Error media_error_; 1217 cricket::VideoMediaChannel::Error media_error_;
1218 1218
1219 // Used by test cases where 2 streams are run on the same channel. 1219 // Used by test cases where 2 streams are run on the same channel.
1220 cricket::FakeVideoRenderer renderer2_; 1220 cricket::FakeVideoRenderer renderer2_;
1221 }; 1221 };
1222 1222
1223 #endif // TALK_MEDIA_BASE_VIDEOENGINE_UNITTEST_H_ NOLINT 1223 #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