summaryrefslogtreecommitdiff
path: root/video_engine/overuse_frame_detector_unittest.cc
diff options
context:
space:
mode:
authorasapersson@webrtc.org <asapersson@webrtc.org@4adac7df-926f-26a2-2b94-8c16560cd09d>2013-12-04 13:47:44 +0000
committerasapersson@webrtc.org <asapersson@webrtc.org@4adac7df-926f-26a2-2b94-8c16560cd09d>2013-12-04 13:47:44 +0000
commitf1630b1f53156a9723ae5431f2fb1e54786593b9 (patch)
tree19f22929a072dcc8a0c6a838eee4bbd8e3820910 /video_engine/overuse_frame_detector_unittest.cc
parentc0d6b2de39b3dd012f6554789693d5ec9904b90a (diff)
downloadwebrtc-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.cc66
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