diff options
author | asapersson@webrtc.org <asapersson@webrtc.org@4adac7df-926f-26a2-2b94-8c16560cd09d> | 2013-12-04 13:47:44 +0000 |
---|---|---|
committer | asapersson@webrtc.org <asapersson@webrtc.org@4adac7df-926f-26a2-2b94-8c16560cd09d> | 2013-12-04 13:47:44 +0000 |
commit | f1630b1f53156a9723ae5431f2fb1e54786593b9 (patch) | |
tree | 19f22929a072dcc8a0c6a838eee4bbd8e3820910 /video_engine/overuse_frame_detector_unittest.cc | |
parent | c0d6b2de39b3dd012f6554789693d5ec9904b90a (diff) | |
download | webrtc-f1630b1f53156a9723ae5431f2fb1e54786593b9.tar.gz |
Added a delay measurement, measures the time between an incoming captured frame until the frame is being processed. Measures the delay per second.
R=mflodman@webrtc.org
Review URL: https://webrtc-codereview.appspot.com/4249004
git-svn-id: http://webrtc.googlecode.com/svn/trunk/webrtc@5212 4adac7df-926f-26a2-2b94-8c16560cd09d
Diffstat (limited to 'video_engine/overuse_frame_detector_unittest.cc')
-rw-r--r-- | video_engine/overuse_frame_detector_unittest.cc | 66 |
1 files changed, 62 insertions, 4 deletions
diff --git a/video_engine/overuse_frame_detector_unittest.cc b/video_engine/overuse_frame_detector_unittest.cc index 131bbfd6..f974f288 100644 --- a/video_engine/overuse_frame_detector_unittest.cc +++ b/video_engine/overuse_frame_detector_unittest.cc @@ -96,17 +96,75 @@ TEST_F(OveruseFrameDetectorTest, ConstantOveruseGivesNoNormalUsage) { } TEST_F(OveruseFrameDetectorTest, LastCaptureJitter) { - EXPECT_EQ(0, overuse_detector_->last_capture_jitter_ms()); + EXPECT_EQ(-1, overuse_detector_->last_capture_jitter_ms()); TriggerOveruse(); EXPECT_GT(overuse_detector_->last_capture_jitter_ms(), 0); } +TEST_F(OveruseFrameDetectorTest, NoCaptureQueueDelay) { + EXPECT_EQ(overuse_detector_->CaptureQueueDelayMsPerS(), 0); + overuse_detector_->FrameCaptured(320, 180); + overuse_detector_->FrameProcessingStarted(); + EXPECT_EQ(overuse_detector_->CaptureQueueDelayMsPerS(), 0); +} + +TEST_F(OveruseFrameDetectorTest, CaptureQueueDelay) { + overuse_detector_->FrameCaptured(320, 180); + clock_->AdvanceTimeMilliseconds(100); + overuse_detector_->FrameProcessingStarted(); + EXPECT_EQ(overuse_detector_->CaptureQueueDelayMsPerS(), 100); +} + +TEST_F(OveruseFrameDetectorTest, CaptureQueueDelayMultipleFrames) { + overuse_detector_->FrameCaptured(320, 180); + clock_->AdvanceTimeMilliseconds(10); + overuse_detector_->FrameCaptured(320, 180); + clock_->AdvanceTimeMilliseconds(20); + + overuse_detector_->FrameProcessingStarted(); + EXPECT_EQ(overuse_detector_->CaptureQueueDelayMsPerS(), 30); + overuse_detector_->FrameProcessingStarted(); + EXPECT_EQ(overuse_detector_->CaptureQueueDelayMsPerS(), 20); +} + +TEST_F(OveruseFrameDetectorTest, CaptureQueueDelayResetAtResolutionSwitch) { + overuse_detector_->FrameCaptured(320, 180); + clock_->AdvanceTimeMilliseconds(10); + overuse_detector_->FrameCaptured(321, 180); + clock_->AdvanceTimeMilliseconds(20); + + overuse_detector_->FrameProcessingStarted(); + EXPECT_EQ(overuse_detector_->CaptureQueueDelayMsPerS(), 20); +} + +TEST_F(OveruseFrameDetectorTest, CaptureQueueDelayNoMatchingCapturedFrame) { + overuse_detector_->FrameCaptured(320, 180); + clock_->AdvanceTimeMilliseconds(100); + overuse_detector_->FrameProcessingStarted(); + EXPECT_EQ(overuse_detector_->CaptureQueueDelayMsPerS(), 100); + // No new captured frame. The last delay should be reported. + overuse_detector_->FrameProcessingStarted(); + EXPECT_EQ(overuse_detector_->CaptureQueueDelayMsPerS(), 100); +} + TEST_F(OveruseFrameDetectorTest, EncodedFrame) { const int kInitialAvgEncodeTimeInMs = 5; - EXPECT_EQ(kInitialAvgEncodeTimeInMs, overuse_detector_->avg_encode_time_ms()); - for (int i = 0; i < 30; i++) + EXPECT_EQ(kInitialAvgEncodeTimeInMs, overuse_detector_->AvgEncodeTimeMs()); + for (int i = 0; i < 30; i++) { + clock_->AdvanceTimeMilliseconds(33); overuse_detector_->FrameEncoded(2); - EXPECT_EQ(2, overuse_detector_->avg_encode_time_ms()); + } + EXPECT_EQ(2, overuse_detector_->AvgEncodeTimeMs()); +} + +TEST_F(OveruseFrameDetectorTest, EncodedUsage) { + for (int i = 0; i < 30; i++) { + overuse_detector_->FrameCaptured(320, 180); + clock_->AdvanceTimeMilliseconds(5); + overuse_detector_->FrameEncoded(5); + clock_->AdvanceTimeMilliseconds(33-5); + } + EXPECT_EQ(15, overuse_detector_->EncodeUsagePercent()); } } // namespace webrtc |