OLD | NEW |
1 /* | 1 /* |
2 * Copyright (c) 2004 The WebRTC project authors. All Rights Reserved. | 2 * Copyright (c) 2004 The WebRTC project authors. All Rights Reserved. |
3 * | 3 * |
4 * Use of this source code is governed by a BSD-style license | 4 * Use of this source code is governed by a BSD-style license |
5 * that can be found in the LICENSE file in the root of the source | 5 * that can be found in the LICENSE file in the root of the source |
6 * tree. An additional intellectual property rights grant can be found | 6 * tree. An additional intellectual property rights grant can be found |
7 * in the file PATENTS. All contributing project authors may | 7 * in the file PATENTS. All contributing project authors may |
8 * be found in the AUTHORS file in the root of the source tree. | 8 * be found in the AUTHORS file in the root of the source tree. |
9 */ | 9 */ |
10 | 10 |
(...skipping 2310 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2321 static const uint32_t kInitialTimestamp = 0xFFFFFFFFu; | 2321 static const uint32_t kInitialTimestamp = 0xFFFFFFFFu; |
2322 static const int64_t kInitialNtpTimeMs = 1247891230; | 2322 static const int64_t kInitialNtpTimeMs = 1247891230; |
2323 static const int kFrameOffsetMs = 20; | 2323 static const int kFrameOffsetMs = 20; |
2324 EXPECT_TRUE(channel_->SetRecvParameters(recv_parameters_)); | 2324 EXPECT_TRUE(channel_->SetRecvParameters(recv_parameters_)); |
2325 | 2325 |
2326 FakeVideoReceiveStream* stream = AddRecvStream(); | 2326 FakeVideoReceiveStream* stream = AddRecvStream(); |
2327 cricket::FakeVideoRenderer renderer; | 2327 cricket::FakeVideoRenderer renderer; |
2328 EXPECT_TRUE(channel_->SetSink(last_ssrc_, &renderer)); | 2328 EXPECT_TRUE(channel_->SetSink(last_ssrc_, &renderer)); |
2329 | 2329 |
2330 webrtc::VideoFrame video_frame(CreateBlackFrameBuffer(4, 4), | 2330 webrtc::VideoFrame video_frame(CreateBlackFrameBuffer(4, 4), |
2331 kInitialTimestamp, 0, | 2331 kInitialTimestamp, 0, webrtc::kVideoRotation_0, |
2332 webrtc::kVideoRotation_0); | 2332 webrtc::VideoContentType::kDefault); |
2333 // Initial NTP time is not available on the first frame, but should still be | 2333 // Initial NTP time is not available on the first frame, but should still be |
2334 // able to be estimated. | 2334 // able to be estimated. |
2335 stream->InjectFrame(video_frame); | 2335 stream->InjectFrame(video_frame); |
2336 | 2336 |
2337 EXPECT_EQ(1, renderer.num_rendered_frames()); | 2337 EXPECT_EQ(1, renderer.num_rendered_frames()); |
2338 | 2338 |
2339 // This timestamp is kInitialTimestamp (-1) + kFrameOffsetMs * 90, which | 2339 // This timestamp is kInitialTimestamp (-1) + kFrameOffsetMs * 90, which |
2340 // triggers a constant-overflow warning, hence we're calculating it explicitly | 2340 // triggers a constant-overflow warning, hence we're calculating it explicitly |
2341 // here. | 2341 // here. |
2342 video_frame.set_timestamp(kFrameOffsetMs * 90 - 1); | 2342 video_frame.set_timestamp(kFrameOffsetMs * 90 - 1); |
(...skipping 1423 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
3766 | 3766 |
3767 TEST_F(WebRtcVideoChannel2Test, RedRtxPacketDoesntCreateUnsignalledStream) { | 3767 TEST_F(WebRtcVideoChannel2Test, RedRtxPacketDoesntCreateUnsignalledStream) { |
3768 TestReceiveUnsignaledSsrcPacket(kRedRtxPayloadType, | 3768 TestReceiveUnsignaledSsrcPacket(kRedRtxPayloadType, |
3769 false /* expect_created_receive_stream */); | 3769 false /* expect_created_receive_stream */); |
3770 } | 3770 } |
3771 | 3771 |
3772 // Test that receiving any unsignalled SSRC works even if it changes. | 3772 // Test that receiving any unsignalled SSRC works even if it changes. |
3773 // The first unsignalled SSRC received will create a default receive stream. | 3773 // The first unsignalled SSRC received will create a default receive stream. |
3774 // Any different unsignalled SSRC received will replace the default. | 3774 // Any different unsignalled SSRC received will replace the default. |
3775 TEST_F(WebRtcVideoChannel2Test, ReceiveDifferentUnsignaledSsrc) { | 3775 TEST_F(WebRtcVideoChannel2Test, ReceiveDifferentUnsignaledSsrc) { |
3776 | |
3777 // Allow receiving VP8, VP9, H264 (if enabled). | 3776 // Allow receiving VP8, VP9, H264 (if enabled). |
3778 cricket::VideoRecvParameters parameters; | 3777 cricket::VideoRecvParameters parameters; |
3779 parameters.codecs.push_back(GetEngineCodec("VP8")); | 3778 parameters.codecs.push_back(GetEngineCodec("VP8")); |
3780 parameters.codecs.push_back(GetEngineCodec("VP9")); | 3779 parameters.codecs.push_back(GetEngineCodec("VP9")); |
3781 | 3780 |
3782 #if defined(WEBRTC_USE_H264) | 3781 #if defined(WEBRTC_USE_H264) |
3783 cricket::VideoCodec H264codec(126, "H264"); | 3782 cricket::VideoCodec H264codec(126, "H264"); |
3784 parameters.codecs.push_back(H264codec); | 3783 parameters.codecs.push_back(H264codec); |
3785 #endif | 3784 #endif |
3786 | 3785 |
(...skipping 13 matching lines...) Expand all Loading... |
3800 rtc::CopyOnWriteBuffer packet(data, sizeof(data)); | 3799 rtc::CopyOnWriteBuffer packet(data, sizeof(data)); |
3801 rtc::PacketTime packet_time; | 3800 rtc::PacketTime packet_time; |
3802 channel_->OnPacketReceived(&packet, packet_time); | 3801 channel_->OnPacketReceived(&packet, packet_time); |
3803 // VP8 packet should create default receive stream. | 3802 // VP8 packet should create default receive stream. |
3804 ASSERT_EQ(1u, fake_call_->GetVideoReceiveStreams().size()); | 3803 ASSERT_EQ(1u, fake_call_->GetVideoReceiveStreams().size()); |
3805 FakeVideoReceiveStream* recv_stream = | 3804 FakeVideoReceiveStream* recv_stream = |
3806 fake_call_->GetVideoReceiveStreams()[0]; | 3805 fake_call_->GetVideoReceiveStreams()[0]; |
3807 EXPECT_EQ(rtpHeader.ssrc, recv_stream->GetConfig().rtp.remote_ssrc); | 3806 EXPECT_EQ(rtpHeader.ssrc, recv_stream->GetConfig().rtp.remote_ssrc); |
3808 // Verify that the receive stream sinks to a renderer. | 3807 // Verify that the receive stream sinks to a renderer. |
3809 webrtc::VideoFrame video_frame(CreateBlackFrameBuffer(4, 4), 100, 0, | 3808 webrtc::VideoFrame video_frame(CreateBlackFrameBuffer(4, 4), 100, 0, |
3810 webrtc::kVideoRotation_0); | 3809 webrtc::kVideoRotation_0, |
| 3810 webrtc::VideoContentType::kDefault); |
3811 recv_stream->InjectFrame(video_frame); | 3811 recv_stream->InjectFrame(video_frame); |
3812 EXPECT_EQ(1, renderer.num_rendered_frames()); | 3812 EXPECT_EQ(1, renderer.num_rendered_frames()); |
3813 | 3813 |
3814 // Receive VP9 packet on second SSRC. | 3814 // Receive VP9 packet on second SSRC. |
3815 rtpHeader.payload_type = GetEngineCodec("VP9").id; | 3815 rtpHeader.payload_type = GetEngineCodec("VP9").id; |
3816 rtpHeader.ssrc = kIncomingUnsignalledSsrc+2; | 3816 rtpHeader.ssrc = kIncomingUnsignalledSsrc+2; |
3817 cricket::SetRtpHeader(data, sizeof(data), rtpHeader); | 3817 cricket::SetRtpHeader(data, sizeof(data), rtpHeader); |
3818 rtc::CopyOnWriteBuffer packet2(data, sizeof(data)); | 3818 rtc::CopyOnWriteBuffer packet2(data, sizeof(data)); |
3819 channel_->OnPacketReceived(&packet2, packet_time); | 3819 channel_->OnPacketReceived(&packet2, packet_time); |
3820 // VP9 packet should replace the default receive SSRC. | 3820 // VP9 packet should replace the default receive SSRC. |
3821 ASSERT_EQ(1u, fake_call_->GetVideoReceiveStreams().size()); | 3821 ASSERT_EQ(1u, fake_call_->GetVideoReceiveStreams().size()); |
3822 recv_stream = fake_call_->GetVideoReceiveStreams()[0]; | 3822 recv_stream = fake_call_->GetVideoReceiveStreams()[0]; |
3823 EXPECT_EQ(rtpHeader.ssrc, recv_stream->GetConfig().rtp.remote_ssrc); | 3823 EXPECT_EQ(rtpHeader.ssrc, recv_stream->GetConfig().rtp.remote_ssrc); |
3824 // Verify that the receive stream sinks to a renderer. | 3824 // Verify that the receive stream sinks to a renderer. |
3825 webrtc::VideoFrame video_frame2(CreateBlackFrameBuffer(4, 4), 200, 0, | 3825 webrtc::VideoFrame video_frame2(CreateBlackFrameBuffer(4, 4), 200, 0, |
3826 webrtc::kVideoRotation_0); | 3826 webrtc::kVideoRotation_0, |
| 3827 webrtc::VideoContentType::kDefault); |
3827 recv_stream->InjectFrame(video_frame2); | 3828 recv_stream->InjectFrame(video_frame2); |
3828 EXPECT_EQ(2, renderer.num_rendered_frames()); | 3829 EXPECT_EQ(2, renderer.num_rendered_frames()); |
3829 | 3830 |
3830 #if defined(WEBRTC_USE_H264) | 3831 #if defined(WEBRTC_USE_H264) |
3831 // Receive H264 packet on third SSRC. | 3832 // Receive H264 packet on third SSRC. |
3832 rtpHeader.payload_type = 126; | 3833 rtpHeader.payload_type = 126; |
3833 rtpHeader.ssrc = kIncomingUnsignalledSsrc+3; | 3834 rtpHeader.ssrc = kIncomingUnsignalledSsrc+3; |
3834 cricket::SetRtpHeader(data, sizeof(data), rtpHeader); | 3835 cricket::SetRtpHeader(data, sizeof(data), rtpHeader); |
3835 rtc::CopyOnWriteBuffer packet3(data, sizeof(data)); | 3836 rtc::CopyOnWriteBuffer packet3(data, sizeof(data)); |
3836 channel_->OnPacketReceived(&packet3, packet_time); | 3837 channel_->OnPacketReceived(&packet3, packet_time); |
3837 // H264 packet should replace the default receive SSRC. | 3838 // H264 packet should replace the default receive SSRC. |
3838 ASSERT_EQ(1u, fake_call_->GetVideoReceiveStreams().size()); | 3839 ASSERT_EQ(1u, fake_call_->GetVideoReceiveStreams().size()); |
3839 recv_stream = fake_call_->GetVideoReceiveStreams()[0]; | 3840 recv_stream = fake_call_->GetVideoReceiveStreams()[0]; |
3840 EXPECT_EQ(rtpHeader.ssrc, recv_stream->GetConfig().rtp.remote_ssrc); | 3841 EXPECT_EQ(rtpHeader.ssrc, recv_stream->GetConfig().rtp.remote_ssrc); |
3841 // Verify that the receive stream sinks to a renderer. | 3842 // Verify that the receive stream sinks to a renderer. |
3842 webrtc::VideoFrame video_frame3(CreateBlackFrameBuffer(4, 4), 300, 0, | 3843 webrtc::VideoFrame video_frame3(CreateBlackFrameBuffer(4, 4), 300, 0, |
3843 webrtc::kVideoRotation_0); | 3844 webrtc::kVideoRotation_0, |
| 3845 webrtc::VideoContentType::kDefault); |
3844 recv_stream->InjectFrame(video_frame3); | 3846 recv_stream->InjectFrame(video_frame3); |
3845 EXPECT_EQ(3, renderer.num_rendered_frames()); | 3847 EXPECT_EQ(3, renderer.num_rendered_frames()); |
3846 #endif | 3848 #endif |
3847 } | 3849 } |
3848 | 3850 |
3849 TEST_F(WebRtcVideoChannel2Test, CanSentMaxBitrateForExistingStream) { | 3851 TEST_F(WebRtcVideoChannel2Test, CanSentMaxBitrateForExistingStream) { |
3850 AddSendStream(); | 3852 AddSendStream(); |
3851 | 3853 |
3852 cricket::FakeVideoCapturer capturer; | 3854 cricket::FakeVideoCapturer capturer; |
3853 EXPECT_TRUE(channel_->SetVideoSend(last_ssrc_, true, nullptr, &capturer)); | 3855 EXPECT_TRUE(channel_->SetVideoSend(last_ssrc_, true, nullptr, &capturer)); |
(...skipping 500 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
4354 } | 4356 } |
4355 | 4357 |
4356 TEST_F(WebRtcVideoChannel2SimulcastTest, SetSendCodecsForSimulcastScreenshare) { | 4358 TEST_F(WebRtcVideoChannel2SimulcastTest, SetSendCodecsForSimulcastScreenshare) { |
4357 webrtc::test::ScopedFieldTrials override_field_trials_( | 4359 webrtc::test::ScopedFieldTrials override_field_trials_( |
4358 "WebRTC-SimulcastScreenshare/Enabled/"); | 4360 "WebRTC-SimulcastScreenshare/Enabled/"); |
4359 VerifySimulcastSettings(cricket::VideoCodec("VP8"), 1280, 720, 3, 2, true, | 4361 VerifySimulcastSettings(cricket::VideoCodec("VP8"), 1280, 720, 3, 2, true, |
4360 true); | 4362 true); |
4361 } | 4363 } |
4362 | 4364 |
4363 } // namespace cricket | 4365 } // namespace cricket |
OLD | NEW |