| OLD | NEW |
| 1 /* | 1 /* |
| 2 * libjingle | 2 * libjingle |
| 3 * Copyright 2004 Google Inc. | 3 * Copyright 2004 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 474 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 485 | 485 |
| 486 cricket::CapturedFrame frame; | 486 cricket::CapturedFrame frame; |
| 487 frame.width = 1280; | 487 frame.width = 1280; |
| 488 frame.height = 720; | 488 frame.height = 720; |
| 489 frame.fourcc = cricket::FOURCC_I420; | 489 frame.fourcc = cricket::FOURCC_I420; |
| 490 frame.data_size = static_cast<uint32>( | 490 frame.data_size = static_cast<uint32>( |
| 491 cricket::VideoFrame::SizeOf(frame.width, frame.height)); | 491 cricket::VideoFrame::SizeOf(frame.width, frame.height)); |
| 492 rtc::scoped_ptr<char[]> data(new char[frame.data_size]); | 492 rtc::scoped_ptr<char[]> data(new char[frame.data_size]); |
| 493 frame.data = data.get(); | 493 frame.data = data.get(); |
| 494 memset(frame.data, 1, frame.data_size); | 494 memset(frame.data, 1, frame.data_size); |
| 495 frame.elapsed_time = 0; | |
| 496 const int kInitialTimestamp = 123456; | 495 const int kInitialTimestamp = 123456; |
| 497 frame.time_stamp = kInitialTimestamp; | 496 frame.time_stamp = kInitialTimestamp; |
| 498 | 497 |
| 499 // Deliver initial frame. | 498 // Deliver initial frame. |
| 500 capturer1.SignalCapturedFrame(&frame); | 499 capturer1.SignalCapturedFrame(&frame); |
| 501 // Deliver next frame 1 second later. | 500 // Deliver next frame 1 second later. |
| 502 frame.time_stamp += rtc::kNumNanosecsPerSec; | 501 frame.time_stamp += rtc::kNumNanosecsPerSec; |
| 503 rtc::Thread::Current()->SleepMs(1000); | 502 rtc::Thread::Current()->SleepMs(1000); |
| 504 capturer1.SignalCapturedFrame(&frame); | 503 capturer1.SignalCapturedFrame(&frame); |
| 505 | 504 |
| (...skipping 1297 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1803 EXPECT_TRUE(capturer.CaptureFrame()); | 1802 EXPECT_TRUE(capturer.CaptureFrame()); |
| 1804 | 1803 |
| 1805 EXPECT_EQ(2, send_stream->GetNumberOfSwappedFrames()); | 1804 EXPECT_EQ(2, send_stream->GetNumberOfSwappedFrames()); |
| 1806 | 1805 |
| 1807 EXPECT_EQ(codec.width, send_stream->GetLastWidth()); | 1806 EXPECT_EQ(codec.width, send_stream->GetLastWidth()); |
| 1808 EXPECT_EQ(codec.height, send_stream->GetLastHeight()); | 1807 EXPECT_EQ(codec.height, send_stream->GetLastHeight()); |
| 1809 | 1808 |
| 1810 EXPECT_TRUE(channel_->SetCapturer(last_ssrc_, NULL)); | 1809 EXPECT_TRUE(channel_->SetCapturer(last_ssrc_, NULL)); |
| 1811 } | 1810 } |
| 1812 | 1811 |
| 1813 TEST_F(WebRtcVideoChannel2Test, EstimatesNtpStartTimeAndElapsedTimeCorrectly) { | 1812 TEST_F(WebRtcVideoChannel2Test, EstimatesNtpStartTimeCorrectly) { |
| 1814 // Start at last timestamp to verify that wraparounds are estimated correctly. | 1813 // Start at last timestamp to verify that wraparounds are estimated correctly. |
| 1815 static const uint32_t kInitialTimestamp = 0xFFFFFFFFu; | 1814 static const uint32_t kInitialTimestamp = 0xFFFFFFFFu; |
| 1816 static const int64_t kInitialNtpTimeMs = 1247891230; | 1815 static const int64_t kInitialNtpTimeMs = 1247891230; |
| 1817 static const int kFrameOffsetMs = 20; | 1816 static const int kFrameOffsetMs = 20; |
| 1818 EXPECT_TRUE(channel_->SetRecvParameters(recv_parameters_)); | 1817 EXPECT_TRUE(channel_->SetRecvParameters(recv_parameters_)); |
| 1819 | 1818 |
| 1820 FakeVideoReceiveStream* stream = AddRecvStream(); | 1819 FakeVideoReceiveStream* stream = AddRecvStream(); |
| 1821 cricket::FakeVideoRenderer renderer; | 1820 cricket::FakeVideoRenderer renderer; |
| 1822 EXPECT_TRUE(channel_->SetRenderer(last_ssrc_, &renderer)); | 1821 EXPECT_TRUE(channel_->SetRenderer(last_ssrc_, &renderer)); |
| 1823 | 1822 |
| 1824 webrtc::VideoFrame video_frame; | 1823 webrtc::VideoFrame video_frame; |
| 1825 CreateBlackFrame(&video_frame, 4, 4); | 1824 CreateBlackFrame(&video_frame, 4, 4); |
| 1826 video_frame.set_timestamp(kInitialTimestamp); | 1825 video_frame.set_timestamp(kInitialTimestamp); |
| 1827 // Initial NTP time is not available on the first frame, but should still be | 1826 // Initial NTP time is not available on the first frame, but should still be |
| 1828 // able to be estimated. | 1827 // able to be estimated. |
| 1829 stream->InjectFrame(video_frame, 0); | 1828 stream->InjectFrame(video_frame, 0); |
| 1830 | 1829 |
| 1831 EXPECT_EQ(1, renderer.num_rendered_frames()); | 1830 EXPECT_EQ(1, renderer.num_rendered_frames()); |
| 1832 EXPECT_EQ(0, renderer.last_frame_elapsed_time_ns()); | |
| 1833 | 1831 |
| 1834 // This timestamp is kInitialTimestamp (-1) + kFrameOffsetMs * 90, which | 1832 // This timestamp is kInitialTimestamp (-1) + kFrameOffsetMs * 90, which |
| 1835 // triggers a constant-overflow warning, hence we're calculating it explicitly | 1833 // triggers a constant-overflow warning, hence we're calculating it explicitly |
| 1836 // here. | 1834 // here. |
| 1837 video_frame.set_timestamp(kFrameOffsetMs * 90 - 1); | 1835 video_frame.set_timestamp(kFrameOffsetMs * 90 - 1); |
| 1838 video_frame.set_ntp_time_ms(kInitialNtpTimeMs + kFrameOffsetMs); | 1836 video_frame.set_ntp_time_ms(kInitialNtpTimeMs + kFrameOffsetMs); |
| 1839 stream->InjectFrame(video_frame, 0); | 1837 stream->InjectFrame(video_frame, 0); |
| 1840 | 1838 |
| 1841 EXPECT_EQ(2, renderer.num_rendered_frames()); | 1839 EXPECT_EQ(2, renderer.num_rendered_frames()); |
| 1842 EXPECT_EQ(kFrameOffsetMs * rtc::kNumNanosecsPerMillisec, | |
| 1843 renderer.last_frame_elapsed_time_ns()); | |
| 1844 | 1840 |
| 1845 // Verify that NTP time has been correctly deduced. | 1841 // Verify that NTP time has been correctly deduced. |
| 1846 cricket::VideoMediaInfo info; | 1842 cricket::VideoMediaInfo info; |
| 1847 ASSERT_TRUE(channel_->GetStats(&info)); | 1843 ASSERT_TRUE(channel_->GetStats(&info)); |
| 1848 ASSERT_EQ(1u, info.receivers.size()); | 1844 ASSERT_EQ(1u, info.receivers.size()); |
| 1849 EXPECT_EQ(kInitialNtpTimeMs, info.receivers[0].capture_start_ntp_time_ms); | 1845 EXPECT_EQ(kInitialNtpTimeMs, info.receivers[0].capture_start_ntp_time_ms); |
| 1850 } | 1846 } |
| 1851 | 1847 |
| 1852 TEST_F(WebRtcVideoChannel2Test, SetDefaultSendCodecs) { | 1848 TEST_F(WebRtcVideoChannel2Test, SetDefaultSendCodecs) { |
| 1853 ASSERT_TRUE(channel_->SetSendParameters(send_parameters_)); | 1849 ASSERT_TRUE(channel_->SetSendParameters(send_parameters_)); |
| (...skipping 1347 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 3201 // Ensures that the correct settings are applied to the codec when two temporal | 3197 // Ensures that the correct settings are applied to the codec when two temporal |
| 3202 // layer screencasting is enabled, and that the correct simulcast settings are | 3198 // layer screencasting is enabled, and that the correct simulcast settings are |
| 3203 // reapplied when disabling screencasting. | 3199 // reapplied when disabling screencasting. |
| 3204 TEST_F(WebRtcVideoChannel2SimulcastTest, | 3200 TEST_F(WebRtcVideoChannel2SimulcastTest, |
| 3205 DISABLED_TwoTemporalLayerScreencastSettings) { | 3201 DISABLED_TwoTemporalLayerScreencastSettings) { |
| 3206 // TODO(pbos): Implement. | 3202 // TODO(pbos): Implement. |
| 3207 FAIL() << "Not implemented."; | 3203 FAIL() << "Not implemented."; |
| 3208 } | 3204 } |
| 3209 | 3205 |
| 3210 } // namespace cricket | 3206 } // namespace cricket |
| OLD | NEW |