Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(130)

Unified Diff: webrtc/video_engine/overuse_frame_detector.cc

Issue 1278383002: Remove avg encode time from CpuOveruseMetric struct and use value from OnEncodedFrame instead. (Closed) Base URL: https://chromium.googlesource.com/external/webrtc.git@master
Patch Set: Created 5 years ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: webrtc/video_engine/overuse_frame_detector.cc
diff --git a/webrtc/video_engine/overuse_frame_detector.cc b/webrtc/video_engine/overuse_frame_detector.cc
index 47a6e496b966c0a5781d3d56d076e6832877fe26..264bedd9b3741c3b219b90e7c812a4c2f8d0bf63 100644
--- a/webrtc/video_engine/overuse_frame_detector.cc
+++ b/webrtc/video_engine/overuse_frame_detector.cc
@@ -44,33 +44,6 @@ const float kMaxExp = 7.0f;
} // namespace
-// Class for calculating the average encode time.
-class OveruseFrameDetector::EncodeTimeAvg {
- public:
- EncodeTimeAvg()
- : kWeightFactor(0.5f),
- kInitialAvgEncodeTimeMs(5.0f),
- filtered_encode_time_ms_(new rtc::ExpFilter(kWeightFactor)) {
- filtered_encode_time_ms_->Apply(1.0f, kInitialAvgEncodeTimeMs);
- }
- ~EncodeTimeAvg() {}
-
- void AddSample(float encode_time_ms, int64_t diff_last_sample_ms) {
- float exp = diff_last_sample_ms / kSampleDiffMs;
- exp = std::min(exp, kMaxExp);
- filtered_encode_time_ms_->Apply(exp, encode_time_ms);
- }
-
- int Value() const {
- return static_cast<int>(filtered_encode_time_ms_->filtered() + 0.5);
- }
-
- private:
- const float kWeightFactor;
- const float kInitialAvgEncodeTimeMs;
- rtc::scoped_ptr<rtc::ExpFilter> filtered_encode_time_ms_;
-};
-
// Class for calculating the processing usage on the send-side (the average
// processing time of a frame divided by the average time difference between
// captured frames).
@@ -209,9 +182,7 @@ OveruseFrameDetector::OveruseFrameDetector(
last_rampup_time_(0),
in_quick_rampup_(false),
current_rampup_delay_ms_(kStandardRampUpDelayMs),
- last_encode_sample_ms_(0),
last_sample_time_ms_(0),
- encode_time_(new EncodeTimeAvg()),
usage_(new SendProcessingUsage(options)),
frame_queue_(new FrameQueue()) {
RTC_DCHECK(metrics_observer != nullptr);
@@ -236,7 +207,6 @@ int OveruseFrameDetector::FramesInQueue() const {
}
void OveruseFrameDetector::UpdateCpuOveruseMetrics() {
- metrics_.avg_encode_time_ms = encode_time_->Value();
metrics_.encode_usage_percent = usage_->Value();
metrics_observer_->CpuOveruseMetricsUpdated(metrics_);
@@ -291,31 +261,23 @@ void OveruseFrameDetector::FrameCaptured(int width,
}
void OveruseFrameDetector::FrameEncoded(int encode_time_ms) {
- rtc::CritScope cs(&crit_);
- int64_t now = clock_->TimeInMilliseconds();
- if (last_encode_sample_ms_ != 0) {
- int64_t diff_ms = now - last_encode_sample_ms_;
- encode_time_->AddSample(encode_time_ms, diff_ms);
- }
- last_encode_sample_ms_ = now;
+ if (options_.enable_extended_processing_usage)
+ return;
- if (!options_.enable_extended_processing_usage) {
- AddProcessingTime(encode_time_ms);
- }
- UpdateCpuOveruseMetrics();
+ rtc::CritScope cs(&crit_);
+ AddProcessingTime(encode_time_ms);
}
void OveruseFrameDetector::FrameSent(int64_t capture_time_ms) {
- rtc::CritScope cs(&crit_);
- if (!options_.enable_extended_processing_usage) {
+ if (!options_.enable_extended_processing_usage)
return;
- }
+
+ rtc::CritScope cs(&crit_);
int delay_ms = frame_queue_->End(capture_time_ms,
clock_->TimeInMilliseconds());
if (delay_ms > 0) {
AddProcessingTime(delay_ms);
}
- UpdateCpuOveruseMetrics();
}
void OveruseFrameDetector::AddProcessingTime(int elapsed_ms) {
@@ -325,6 +287,7 @@ void OveruseFrameDetector::AddProcessingTime(int elapsed_ms) {
usage_->AddSample(elapsed_ms, diff_ms);
}
last_sample_time_ms_ = now;
+ UpdateCpuOveruseMetrics();
}
int32_t OveruseFrameDetector::Process() {

Powered by Google App Engine
This is Rietveld 408576698