Remove unused metric in overuse detector.
BUG=
R=stefan@webrtc.org
Review URL: https://codereview.webrtc.org/1237963002 .
Cr-Commit-Position: refs/heads/master@{#9590}
diff --git a/webrtc/video/video_capture_input.cc b/webrtc/video/video_capture_input.cc
index 4bf80e3..ecd7a30 100644
--- a/webrtc/video/video_capture_input.cc
+++ b/webrtc/video/video_capture_input.cc
@@ -131,7 +131,6 @@
if (rtc::AtomicOps::Load(&stop_))
return false;
- overuse_detector_->FrameProcessingStarted();
int64_t encode_start_time = -1;
VideoFrame deliver_frame;
{
diff --git a/webrtc/video_engine/overuse_frame_detector.cc b/webrtc/video_engine/overuse_frame_detector.cc
index 71f8f57..6780688 100644
--- a/webrtc/video_engine/overuse_frame_detector.cc
+++ b/webrtc/video_engine/overuse_frame_detector.cc
@@ -253,63 +253,6 @@
int last_processing_time_ms_;
};
-// TODO(asapersson): Remove this class. Not used.
-// Class for calculating the capture queue delay change.
-class OveruseFrameDetector::CaptureQueueDelay {
- public:
- CaptureQueueDelay()
- : kWeightFactor(0.5f),
- delay_ms_(0),
- filtered_delay_ms_per_s_(new rtc::ExpFilter(kWeightFactor)) {
- filtered_delay_ms_per_s_->Apply(1.0f, 0.0f);
- }
- ~CaptureQueueDelay() {}
-
- void FrameCaptured(int64_t now) {
- const size_t kMaxSize = 200;
- if (frames_.size() > kMaxSize) {
- frames_.pop_front();
- }
- frames_.push_back(now);
- }
-
- void FrameProcessingStarted(int64_t now) {
- if (frames_.empty()) {
- return;
- }
- delay_ms_ = now - frames_.front();
- frames_.pop_front();
- }
-
- void CalculateDelayChange(int64_t diff_last_sample_ms) {
- if (diff_last_sample_ms <= 0) {
- return;
- }
- float exp = static_cast<float>(diff_last_sample_ms) / kProcessIntervalMs;
- exp = std::min(exp, kMaxExp);
- filtered_delay_ms_per_s_->Apply(exp,
- delay_ms_ * 1000.0f / diff_last_sample_ms);
- ClearFrames();
- }
-
- void ClearFrames() {
- frames_.clear();
- }
-
- int delay_ms() const {
- return delay_ms_;
- }
-
- int Value() const {
- return static_cast<int>(filtered_delay_ms_per_s_->filtered() + 0.5);
- }
-
- private:
- const float kWeightFactor;
- std::list<int64_t> frames_;
- int delay_ms_;
- rtc::scoped_ptr<rtc::ExpFilter> filtered_delay_ms_per_s_;
-};
OveruseFrameDetector::OveruseFrameDetector(
Clock* clock,
@@ -335,8 +278,7 @@
encode_time_(new EncodeTimeAvg()),
usage_(new SendProcessingUsage(options)),
frame_queue_(new FrameQueue()),
- last_sample_time_ms_(0),
- capture_queue_delay_(new CaptureQueueDelay()) {
+ last_sample_time_ms_(0) {
DCHECK(metrics_observer != nullptr);
// Make sure stats are initially up-to-date. This simplifies unit testing
// since we don't have to trigger an update using one of the methods which
@@ -348,11 +290,6 @@
OveruseFrameDetector::~OveruseFrameDetector() {
}
-int OveruseFrameDetector::CaptureQueueDelayMsPerS() const {
- rtc::CritScope cs(&crit_);
- return capture_queue_delay_->delay_ms();
-}
-
int OveruseFrameDetector::LastProcessingTimeMs() const {
rtc::CritScope cs(&crit_);
return frame_queue_->last_processing_time_ms();
@@ -367,7 +304,6 @@
metrics_.capture_jitter_ms = static_cast<int>(capture_deltas_.StdDev() + 0.5);
metrics_.avg_encode_time_ms = encode_time_->Value();
metrics_.encode_usage_percent = usage_->Value();
- metrics_.capture_queue_delay_ms_per_s = capture_queue_delay_->Value();
metrics_observer_->CpuOveruseMetricsUpdated(metrics_);
}
@@ -396,7 +332,6 @@
capture_deltas_.Reset();
usage_->Reset();
frame_queue_->Reset();
- capture_queue_delay_->ClearFrames();
last_capture_time_ = 0;
num_process_times_ = 0;
UpdateCpuOveruseMetrics();
@@ -418,19 +353,12 @@
}
last_capture_time_ = now;
- capture_queue_delay_->FrameCaptured(now);
-
if (options_.enable_extended_processing_usage) {
frame_queue_->Start(capture_time_ms, now);
}
UpdateCpuOveruseMetrics();
}
-void OveruseFrameDetector::FrameProcessingStarted() {
- rtc::CritScope cs(&crit_);
- capture_queue_delay_->FrameProcessingStarted(clock_->TimeInMilliseconds());
-}
-
void OveruseFrameDetector::FrameEncoded(int encode_time_ms) {
rtc::CritScope cs(&crit_);
int64_t now = clock_->TimeInMilliseconds();
@@ -477,15 +405,11 @@
if (now < next_process_time_)
return 0;
- int64_t diff_ms = now - next_process_time_ + kProcessIntervalMs;
next_process_time_ = now + kProcessIntervalMs;
rtc::CritScope cs(&crit_);
++num_process_times_;
- capture_queue_delay_->CalculateDelayChange(diff_ms);
- UpdateCpuOveruseMetrics();
-
if (num_process_times_ <= options_.min_process_count) {
return 0;
}
diff --git a/webrtc/video_engine/overuse_frame_detector.h b/webrtc/video_engine/overuse_frame_detector.h
index 5198293..4791cee 100644
--- a/webrtc/video_engine/overuse_frame_detector.h
+++ b/webrtc/video_engine/overuse_frame_detector.h
@@ -106,18 +106,13 @@
CpuOveruseMetrics()
: capture_jitter_ms(-1),
avg_encode_time_ms(-1),
- encode_usage_percent(-1),
- capture_queue_delay_ms_per_s(-1) {}
+ encode_usage_percent(-1) {}
int capture_jitter_ms; // The current estimated jitter in ms based on
// incoming captured frames.
int avg_encode_time_ms; // The average encode time in ms.
int encode_usage_percent; // The average encode time divided by the average
// time difference between incoming captured frames.
- int capture_queue_delay_ms_per_s; // The current time delay between an
- // incoming captured frame until the frame
- // is being processed. The delay is
- // expressed in ms delay per second.
};
class CpuOveruseMetricsObserver {
@@ -161,9 +156,6 @@
// Called for each captured frame.
void FrameCaptured(int width, int height, int64_t capture_time_ms);
- // Called when the processing of a captured frame is started.
- void FrameProcessingStarted();
-
// Called for each encoded frame.
void FrameEncoded(int encode_time_ms);
@@ -171,7 +163,6 @@
void FrameSent(int64_t capture_time_ms);
// Only public for testing.
- int CaptureQueueDelayMsPerS() const;
int LastProcessingTimeMs() const;
int FramesInQueue() const;
@@ -182,7 +173,6 @@
private:
class EncodeTimeAvg;
class SendProcessingUsage;
- class CaptureQueueDelay;
class FrameQueue;
void UpdateCpuOveruseMetrics() EXCLUSIVE_LOCKS_REQUIRED(crit_);
@@ -247,9 +237,6 @@
int64_t last_sample_time_ms_; // Only accessed by one thread.
- const rtc::scoped_ptr<CaptureQueueDelay> capture_queue_delay_
- GUARDED_BY(crit_);
-
rtc::ThreadChecker processing_thread_;
DISALLOW_COPY_AND_ASSIGN(OveruseFrameDetector);
diff --git a/webrtc/video_engine/overuse_frame_detector_unittest.cc b/webrtc/video_engine/overuse_frame_detector_unittest.cc
index 07306ef..0abce08 100644
--- a/webrtc/video_engine/overuse_frame_detector_unittest.cc
+++ b/webrtc/video_engine/overuse_frame_detector_unittest.cc
@@ -288,59 +288,6 @@
EXPECT_EQ(InitialJitter(), CaptureJitterMs());
}
-TEST_F(OveruseFrameDetectorTest, NoCaptureQueueDelay) {
- EXPECT_EQ(overuse_detector_->CaptureQueueDelayMsPerS(), 0);
- overuse_detector_->FrameCaptured(
- kWidth, kHeight, clock_->TimeInMilliseconds());
- overuse_detector_->FrameProcessingStarted();
- EXPECT_EQ(overuse_detector_->CaptureQueueDelayMsPerS(), 0);
-}
-
-TEST_F(OveruseFrameDetectorTest, CaptureQueueDelay) {
- overuse_detector_->FrameCaptured(
- kWidth, kHeight, clock_->TimeInMilliseconds());
- clock_->AdvanceTimeMilliseconds(100);
- overuse_detector_->FrameProcessingStarted();
- EXPECT_EQ(overuse_detector_->CaptureQueueDelayMsPerS(), 100);
-}
-
-TEST_F(OveruseFrameDetectorTest, CaptureQueueDelayMultipleFrames) {
- overuse_detector_->FrameCaptured(
- kWidth, kHeight, clock_->TimeInMilliseconds());
- clock_->AdvanceTimeMilliseconds(10);
- overuse_detector_->FrameCaptured(
- kWidth, kHeight, clock_->TimeInMilliseconds());
- 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(
- kWidth, kHeight, clock_->TimeInMilliseconds());
- clock_->AdvanceTimeMilliseconds(10);
- overuse_detector_->FrameCaptured(
- kWidth, kHeight + 1, clock_->TimeInMilliseconds());
- clock_->AdvanceTimeMilliseconds(20);
-
- overuse_detector_->FrameProcessingStarted();
- EXPECT_EQ(overuse_detector_->CaptureQueueDelayMsPerS(), 20);
-}
-
-TEST_F(OveruseFrameDetectorTest, CaptureQueueDelayNoMatchingCapturedFrame) {
- overuse_detector_->FrameCaptured(
- kWidth, kHeight, clock_->TimeInMilliseconds());
- 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, FrameDelay_OneFrameDisabled) {
options_.enable_extended_processing_usage = false;
ReinitializeOveruseDetector();