| OLD | NEW |
| 1 /* | 1 /* |
| 2 * Copyright (c) 2016 The WebRTC project authors. All Rights Reserved. | 2 * Copyright (c) 2016 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 770 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 781 sink_.WaitForEncodedFrame(frame_timestamp); | 781 sink_.WaitForEncodedFrame(frame_timestamp); |
| 782 frame_timestamp += kFrameIntervalMs; | 782 frame_timestamp += kFrameIntervalMs; |
| 783 | 783 |
| 784 // Trigger CPU overuse. | 784 // Trigger CPU overuse. |
| 785 vie_encoder_->TriggerCpuOveruse(); | 785 vie_encoder_->TriggerCpuOveruse(); |
| 786 video_source_.IncomingCapturedFrame( | 786 video_source_.IncomingCapturedFrame( |
| 787 CreateFrame(frame_timestamp, kFrameWidth, kFrameHeight)); | 787 CreateFrame(frame_timestamp, kFrameWidth, kFrameHeight)); |
| 788 sink_.WaitForEncodedFrame(frame_timestamp); | 788 sink_.WaitForEncodedFrame(frame_timestamp); |
| 789 frame_timestamp += kFrameIntervalMs; | 789 frame_timestamp += kFrameIntervalMs; |
| 790 | 790 |
| 791 // Default degradation preference in maintain-framerate, so will lower max | 791 // Default degradation preference is maintain-framerate, so will lower max |
| 792 // wanted resolution. | 792 // wanted resolution. |
| 793 EXPECT_FALSE(video_source_.sink_wants().target_pixel_count); | 793 EXPECT_FALSE(video_source_.sink_wants().target_pixel_count); |
| 794 EXPECT_LT(video_source_.sink_wants().max_pixel_count, | 794 EXPECT_LT(video_source_.sink_wants().max_pixel_count, |
| 795 kFrameWidth * kFrameHeight); | 795 kFrameWidth * kFrameHeight); |
| 796 EXPECT_EQ(std::numeric_limits<int>::max(), | 796 EXPECT_EQ(std::numeric_limits<int>::max(), |
| 797 video_source_.sink_wants().max_framerate_fps); | 797 video_source_.sink_wants().max_framerate_fps); |
| 798 | 798 |
| 799 // Set new source, switch to maintain-resolution. | 799 // Set new source, switch to maintain-resolution. |
| 800 test::FrameForwarder new_video_source; | 800 test::FrameForwarder new_video_source; |
| 801 vie_encoder_->SetSource( | 801 vie_encoder_->SetSource( |
| (...skipping 303 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1105 EXPECT_TRUE(stats_proxy_->GetStats().cpu_limited_resolution); | 1105 EXPECT_TRUE(stats_proxy_->GetStats().cpu_limited_resolution); |
| 1106 EXPECT_FALSE(stats_proxy_->GetStats().bw_limited_resolution); | 1106 EXPECT_FALSE(stats_proxy_->GetStats().bw_limited_resolution); |
| 1107 EXPECT_EQ(1, stats_proxy_->GetStats().number_of_cpu_adapt_changes); | 1107 EXPECT_EQ(1, stats_proxy_->GetStats().number_of_cpu_adapt_changes); |
| 1108 | 1108 |
| 1109 vie_encoder_->Stop(); | 1109 vie_encoder_->Stop(); |
| 1110 } | 1110 } |
| 1111 | 1111 |
| 1112 TEST_F(ViEEncoderTest, StatsTracksAdaptationStatsWhenSwitchingSource) { | 1112 TEST_F(ViEEncoderTest, StatsTracksAdaptationStatsWhenSwitchingSource) { |
| 1113 vie_encoder_->OnBitrateUpdated(kTargetBitrateBps, 0, 0); | 1113 vie_encoder_->OnBitrateUpdated(kTargetBitrateBps, 0, 0); |
| 1114 | 1114 |
| 1115 int kWidth = 1280; | 1115 const int kWidth = 1280; |
| 1116 int kHeight = 720; | 1116 const int kHeight = 720; |
| 1117 int sequence = 1; | 1117 int sequence = 1; |
| 1118 | 1118 |
| 1119 video_source_.IncomingCapturedFrame(CreateFrame(sequence, kWidth, kHeight)); | 1119 video_source_.IncomingCapturedFrame(CreateFrame(sequence, kWidth, kHeight)); |
| 1120 sink_.WaitForEncodedFrame(sequence++); | 1120 sink_.WaitForEncodedFrame(sequence++); |
| 1121 | 1121 |
| 1122 VideoSendStream::Stats stats = stats_proxy_->GetStats(); | 1122 VideoSendStream::Stats stats = stats_proxy_->GetStats(); |
| 1123 EXPECT_FALSE(stats.cpu_limited_resolution); | 1123 EXPECT_FALSE(stats.cpu_limited_resolution); |
| 1124 EXPECT_EQ(0, stats.number_of_cpu_adapt_changes); | 1124 EXPECT_EQ(0, stats.number_of_cpu_adapt_changes); |
| 1125 | 1125 |
| 1126 // Trigger CPU overuse again, should now adapt down. | 1126 // Trigger CPU overuse again, should now adapt down. |
| (...skipping 270 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1397 vie_encoder_->OnBitrateUpdated(kTooLowBitrateForFrameSizeBps, 0, 0); | 1397 vie_encoder_->OnBitrateUpdated(kTooLowBitrateForFrameSizeBps, 0, 0); |
| 1398 const int kWidth = 640; | 1398 const int kWidth = 640; |
| 1399 const int kHeight = 360; | 1399 const int kHeight = 360; |
| 1400 | 1400 |
| 1401 video_source_.IncomingCapturedFrame(CreateFrame(1, kWidth, kHeight)); | 1401 video_source_.IncomingCapturedFrame(CreateFrame(1, kWidth, kHeight)); |
| 1402 | 1402 |
| 1403 // Expect to drop this frame, the wait should time out. | 1403 // Expect to drop this frame, the wait should time out. |
| 1404 sink_.ExpectDroppedFrame(); | 1404 sink_.ExpectDroppedFrame(); |
| 1405 | 1405 |
| 1406 // Expect the sink_wants to specify a scaled frame. | 1406 // Expect the sink_wants to specify a scaled frame. |
| 1407 EXPECT_LT(video_source_.sink_wants().max_pixel_count, 1000 * 1000); | 1407 EXPECT_LT(video_source_.sink_wants().max_pixel_count, kWidth * kHeight); |
| 1408 | 1408 |
| 1409 int last_pixel_count = video_source_.sink_wants().max_pixel_count; | 1409 int last_pixel_count = video_source_.sink_wants().max_pixel_count; |
| 1410 | 1410 |
| 1411 // Next frame is scaled. | 1411 // Next frame is scaled. |
| 1412 video_source_.IncomingCapturedFrame( | 1412 video_source_.IncomingCapturedFrame( |
| 1413 CreateFrame(2, kWidth * 3 / 4, kHeight * 3 / 4)); | 1413 CreateFrame(2, kWidth * 3 / 4, kHeight * 3 / 4)); |
| 1414 | 1414 |
| 1415 // Expect to drop this frame, the wait should time out. | 1415 // Expect to drop this frame, the wait should time out. |
| 1416 sink_.ExpectDroppedFrame(); | 1416 sink_.ExpectDroppedFrame(); |
| 1417 | 1417 |
| (...skipping 246 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1664 for (int i = 0; i < 10; ++i) { | 1664 for (int i = 0; i < 10; ++i) { |
| 1665 timestamp_ms += kMinFpsFrameInterval; | 1665 timestamp_ms += kMinFpsFrameInterval; |
| 1666 fake_clock.AdvanceTimeMicros(kMinFpsFrameInterval * 1000); | 1666 fake_clock.AdvanceTimeMicros(kMinFpsFrameInterval * 1000); |
| 1667 video_source_.IncomingCapturedFrame( | 1667 video_source_.IncomingCapturedFrame( |
| 1668 CreateFrame(timestamp_ms, kFrameWidth, kFrameHeight)); | 1668 CreateFrame(timestamp_ms, kFrameWidth, kFrameHeight)); |
| 1669 sink_.WaitForEncodedFrame(timestamp_ms); | 1669 sink_.WaitForEncodedFrame(timestamp_ms); |
| 1670 } | 1670 } |
| 1671 vie_encoder_->Stop(); | 1671 vie_encoder_->Stop(); |
| 1672 } | 1672 } |
| 1673 } // namespace webrtc | 1673 } // namespace webrtc |
| OLD | NEW |