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

Side by Side Diff: webrtc/media/engine/webrtcvideoengine2_unittest.cc

Issue 2772033002: Add content type information to encoded images and corresponding rtp extension header (Closed)
Patch Set: Set EncodedImage content_type from vie_encoder Created 3 years, 8 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 * 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
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::kVideoContent_Default);
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
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
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::kVideoContent_Default);
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::kVideoContent_Default);
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::kVideoContent_Default);
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
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
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698