| OLD | NEW |
| 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 Loading... |
| 753 // Wait 30ms to guarantee the engine does not drop the frame. | 753 // Wait 30ms to guarantee the engine does not drop the frame. |
| 754 EXPECT_TRUE(WaitAndSendFrame(30)); | 754 EXPECT_TRUE(WaitAndSendFrame(30)); |
| 755 EXPECT_TRUE_WAIT(NumRtpPackets() > rtp_packets, kTimeout); | 755 EXPECT_TRUE_WAIT(NumRtpPackets() > rtp_packets, kTimeout); |
| 756 | 756 |
| 757 last_packet = NumRtpPackets() - 1; | 757 last_packet = NumRtpPackets() - 1; |
| 758 p.reset(GetRtpPacket(static_cast<int>(last_packet))); | 758 p.reset(GetRtpPacket(static_cast<int>(last_packet))); |
| 759 ParseRtpPacket(p.get(), NULL, NULL, NULL, NULL, &ssrc, NULL); | 759 ParseRtpPacket(p.get(), NULL, NULL, NULL, NULL, &ssrc, NULL); |
| 760 EXPECT_EQ(789u, ssrc); | 760 EXPECT_EQ(789u, ssrc); |
| 761 } | 761 } |
| 762 | 762 |
| 763 // Tests setting up and configuring multiple incoming streams. | |
| 764 void AddRemoveRecvStreams() { | |
| 765 cricket::FakeVideoRenderer renderer1, renderer2; | |
| 766 cricket::VideoSendParameters parameters; | |
| 767 parameters.codecs.push_back(DefaultCodec()); | |
| 768 EXPECT_TRUE(channel_->SetSendParameters(parameters)); | |
| 769 | |
| 770 // Ensure we can't set the renderer on a non-existent stream. | |
| 771 EXPECT_FALSE(channel_->SetRenderer(1, &renderer1)); | |
| 772 EXPECT_FALSE(channel_->SetRenderer(2, &renderer2)); | |
| 773 cricket::VideoRenderer* renderer; | |
| 774 EXPECT_FALSE(channel_->GetRenderer(1, &renderer)); | |
| 775 EXPECT_FALSE(channel_->GetRenderer(2, &renderer)); | |
| 776 | |
| 777 // Ensure we can add streams. | |
| 778 EXPECT_TRUE(channel_->AddRecvStream( | |
| 779 cricket::StreamParams::CreateLegacy(1))); | |
| 780 EXPECT_TRUE(channel_->AddRecvStream( | |
| 781 cricket::StreamParams::CreateLegacy(2))); | |
| 782 EXPECT_TRUE(channel_->GetRenderer(1, &renderer)); | |
| 783 EXPECT_TRUE(renderer == NULL); | |
| 784 EXPECT_TRUE(channel_->GetRenderer(2, &renderer)); | |
| 785 EXPECT_TRUE(NULL == renderer); | |
| 786 | |
| 787 // Ensure we can now set the renderers. | |
| 788 EXPECT_TRUE(channel_->SetRenderer(1, &renderer1)); | |
| 789 EXPECT_TRUE(channel_->SetRenderer(2, &renderer2)); | |
| 790 EXPECT_TRUE(channel_->GetRenderer(1, &renderer)); | |
| 791 EXPECT_TRUE(&renderer1 == renderer); | |
| 792 EXPECT_TRUE(channel_->GetRenderer(2, &renderer)); | |
| 793 EXPECT_TRUE(&renderer2 == renderer); | |
| 794 | |
| 795 // Ensure we can change the renderers if needed. | |
| 796 EXPECT_TRUE(channel_->SetRenderer(1, &renderer2)); | |
| 797 EXPECT_TRUE(channel_->SetRenderer(2, &renderer1)); | |
| 798 EXPECT_TRUE(channel_->GetRenderer(1, &renderer)); | |
| 799 EXPECT_TRUE(&renderer2 == renderer); | |
| 800 EXPECT_TRUE(channel_->GetRenderer(2, &renderer)); | |
| 801 EXPECT_TRUE(&renderer1 == renderer); | |
| 802 | |
| 803 EXPECT_TRUE(channel_->RemoveRecvStream(2)); | |
| 804 EXPECT_TRUE(channel_->RemoveRecvStream(1)); | |
| 805 EXPECT_FALSE(channel_->GetRenderer(1, &renderer)); | |
| 806 EXPECT_FALSE(channel_->GetRenderer(2, &renderer)); | |
| 807 } | |
| 808 | |
| 809 // Tests setting up and configuring multiple incoming streams in a | |
| 810 // non-conference call. | |
| 811 void AddRemoveRecvStreamsNoConference() { | |
| 812 cricket::FakeVideoRenderer renderer1, renderer2; | |
| 813 // Ensure we can't set the renderer on a non-existent stream. | |
| 814 EXPECT_FALSE(channel_->SetRenderer(1, &renderer1)); | |
| 815 EXPECT_FALSE(channel_->SetRenderer(2, &renderer2)); | |
| 816 cricket::VideoRenderer* renderer; | |
| 817 EXPECT_FALSE(channel_->GetRenderer(1, &renderer)); | |
| 818 EXPECT_FALSE(channel_->GetRenderer(2, &renderer)); | |
| 819 | |
| 820 // Ensure we can add streams. | |
| 821 EXPECT_TRUE(channel_->AddRecvStream( | |
| 822 cricket::StreamParams::CreateLegacy(1))); | |
| 823 EXPECT_TRUE(channel_->AddRecvStream( | |
| 824 cricket::StreamParams::CreateLegacy(2))); | |
| 825 EXPECT_TRUE(channel_->GetRenderer(1, &renderer)); | |
| 826 // Verify the first AddRecvStream hook up to the default renderer. | |
| 827 EXPECT_TRUE(renderer == NULL); | |
| 828 EXPECT_TRUE(channel_->GetRenderer(2, &renderer)); | |
| 829 EXPECT_TRUE(NULL == renderer); | |
| 830 | |
| 831 // Ensure we can now set the renderers. | |
| 832 EXPECT_TRUE(channel_->SetRenderer(1, &renderer1)); | |
| 833 EXPECT_TRUE(channel_->SetRenderer(2, &renderer2)); | |
| 834 EXPECT_TRUE(channel_->GetRenderer(1, &renderer)); | |
| 835 EXPECT_TRUE(&renderer1 == renderer); | |
| 836 EXPECT_TRUE(channel_->GetRenderer(2, &renderer)); | |
| 837 EXPECT_TRUE(&renderer2 == renderer); | |
| 838 | |
| 839 // Ensure we can change the renderers if needed. | |
| 840 EXPECT_TRUE(channel_->SetRenderer(1, &renderer2)); | |
| 841 EXPECT_TRUE(channel_->SetRenderer(2, &renderer1)); | |
| 842 EXPECT_TRUE(channel_->GetRenderer(1, &renderer)); | |
| 843 EXPECT_TRUE(&renderer2 == renderer); | |
| 844 EXPECT_TRUE(channel_->GetRenderer(2, &renderer)); | |
| 845 EXPECT_TRUE(&renderer1 == renderer); | |
| 846 | |
| 847 EXPECT_TRUE(channel_->RemoveRecvStream(2)); | |
| 848 EXPECT_TRUE(channel_->RemoveRecvStream(1)); | |
| 849 EXPECT_FALSE(channel_->GetRenderer(1, &renderer)); | |
| 850 EXPECT_FALSE(channel_->GetRenderer(2, &renderer)); | |
| 851 } | |
| 852 | |
| 853 // Test that no frames are rendered after the receive stream have been | 763 // Test that no frames are rendered after the receive stream have been |
| 854 // removed. | 764 // removed. |
| 855 void AddRemoveRecvStreamAndRender() { | 765 void AddRemoveRecvStreamAndRender() { |
| 856 cricket::FakeVideoRenderer renderer1; | 766 cricket::FakeVideoRenderer renderer1; |
| 857 EXPECT_TRUE(SetDefaultCodec()); | 767 EXPECT_TRUE(SetDefaultCodec()); |
| 858 EXPECT_TRUE(SetSend(true)); | 768 EXPECT_TRUE(SetSend(true)); |
| 859 EXPECT_TRUE(channel_->AddRecvStream( | 769 EXPECT_TRUE(channel_->AddRecvStream( |
| 860 cricket::StreamParams::CreateLegacy(kSsrc))); | 770 cricket::StreamParams::CreateLegacy(kSsrc))); |
| 861 EXPECT_TRUE(channel_->SetRenderer(kSsrc, &renderer1)); | 771 EXPECT_TRUE(channel_->SetRenderer(kSsrc, &renderer1)); |
| 862 | 772 |
| (...skipping 604 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1467 rtc::scoped_ptr<C> channel_; | 1377 rtc::scoped_ptr<C> channel_; |
| 1468 cricket::FakeNetworkInterface network_interface_; | 1378 cricket::FakeNetworkInterface network_interface_; |
| 1469 cricket::FakeVideoRenderer renderer_; | 1379 cricket::FakeVideoRenderer renderer_; |
| 1470 cricket::VideoMediaChannel::Error media_error_; | 1380 cricket::VideoMediaChannel::Error media_error_; |
| 1471 | 1381 |
| 1472 // Used by test cases where 2 streams are run on the same channel. | 1382 // Used by test cases where 2 streams are run on the same channel. |
| 1473 cricket::FakeVideoRenderer renderer2_; | 1383 cricket::FakeVideoRenderer renderer2_; |
| 1474 }; | 1384 }; |
| 1475 | 1385 |
| 1476 #endif // TALK_MEDIA_BASE_VIDEOENGINE_UNITTEST_H_ NOLINT | 1386 #endif // TALK_MEDIA_BASE_VIDEOENGINE_UNITTEST_H_ NOLINT |
| OLD | NEW |