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

Unified Diff: webrtc/video/stats_counter.cc

Issue 2388043003: Make process interval configurable for MaxCounter class. (Closed)
Patch Set: Created 4 years, 2 months 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
« no previous file with comments | « webrtc/video/stats_counter.h ('k') | webrtc/video/stats_counter_unittest.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: webrtc/video/stats_counter.cc
diff --git a/webrtc/video/stats_counter.cc b/webrtc/video/stats_counter.cc
index 0a66015cee6db31ed858cc3a81a574b28aae0409..f1b82e8f5772101622ea90b9d492aef0bae0e33c 100644
--- a/webrtc/video/stats_counter.cc
+++ b/webrtc/video/stats_counter.cc
@@ -18,8 +18,8 @@
namespace webrtc {
namespace {
-// Periodic time interval for processing samples.
-const int64_t kProcessIntervalMs = 2000;
+// Default periodic time interval for processing samples.
+const int64_t kDefaultProcessIntervalMs = 2000;
} // namespace
// Class holding periodically computed metrics.
@@ -64,6 +64,7 @@ class AggregatedCounter {
// StatsCounter class.
StatsCounter::StatsCounter(Clock* clock,
+ int64_t process_intervals_ms,
bool include_empty_intervals,
StatsCounterObserver* observer)
: max_(0),
@@ -71,11 +72,14 @@ StatsCounter::StatsCounter(Clock* clock,
num_samples_(0),
last_sum_(0),
aggregated_counter_(new AggregatedCounter()),
+ process_intervals_ms_(process_intervals_ms),
clock_(clock),
include_empty_intervals_(include_empty_intervals),
observer_(observer),
last_process_time_ms_(-1),
- paused_(false) {}
+ paused_(false) {
+ RTC_DCHECK_GT(process_intervals_ms_, 0);
+}
StatsCounter::~StatsCounter() {}
@@ -105,12 +109,12 @@ bool StatsCounter::TimeToProcess(int* elapsed_intervals) {
last_process_time_ms_ = now;
int64_t diff_ms = now - last_process_time_ms_;
- if (diff_ms < kProcessIntervalMs)
+ if (diff_ms < process_intervals_ms_)
return false;
- // Advance number of complete kProcessIntervalMs that have passed.
- int64_t num_intervals = diff_ms / kProcessIntervalMs;
- last_process_time_ms_ += num_intervals * kProcessIntervalMs;
+ // Advance number of complete |process_intervals_ms_| that have passed.
+ int64_t num_intervals = diff_ms / process_intervals_ms_;
+ last_process_time_ms_ += num_intervals * process_intervals_ms_;
*elapsed_intervals = num_intervals;
return true;
@@ -181,7 +185,10 @@ bool StatsCounter::IncludeEmptyIntervals() const {
AvgCounter::AvgCounter(Clock* clock,
StatsCounterObserver* observer,
bool include_empty_intervals)
- : StatsCounter(clock, include_empty_intervals, observer) {}
+ : StatsCounter(clock,
+ kDefaultProcessIntervalMs,
+ include_empty_intervals,
+ observer) {}
void AvgCounter::Add(int sample) {
StatsCounter::Add(sample);
@@ -198,8 +205,11 @@ int AvgCounter::GetValueForEmptyInterval() const {
return aggregated_counter_->last_sample();
}
-MaxCounter::MaxCounter(Clock* clock, StatsCounterObserver* observer)
+MaxCounter::MaxCounter(Clock* clock,
+ StatsCounterObserver* observer,
+ int64_t process_intervals_ms)
: StatsCounter(clock,
+ process_intervals_ms,
false, // |include_empty_intervals|
observer) {}
@@ -221,6 +231,7 @@ int MaxCounter::GetValueForEmptyInterval() const {
PercentCounter::PercentCounter(Clock* clock, StatsCounterObserver* observer)
: StatsCounter(clock,
+ kDefaultProcessIntervalMs,
false, // |include_empty_intervals|
observer) {}
@@ -242,6 +253,7 @@ int PercentCounter::GetValueForEmptyInterval() const {
PermilleCounter::PermilleCounter(Clock* clock, StatsCounterObserver* observer)
: StatsCounter(clock,
+ kDefaultProcessIntervalMs,
false, // |include_empty_intervals|
observer) {}
@@ -264,7 +276,10 @@ int PermilleCounter::GetValueForEmptyInterval() const {
RateCounter::RateCounter(Clock* clock,
StatsCounterObserver* observer,
bool include_empty_intervals)
- : StatsCounter(clock, include_empty_intervals, observer) {}
+ : StatsCounter(clock,
+ kDefaultProcessIntervalMs,
+ include_empty_intervals,
+ observer) {}
void RateCounter::Add(int sample) {
StatsCounter::Add(sample);
@@ -273,7 +288,7 @@ void RateCounter::Add(int sample) {
bool RateCounter::GetMetric(int* metric) const {
if (num_samples_ == 0)
return false;
- *metric = (sum_ * 1000 + kProcessIntervalMs / 2) / kProcessIntervalMs;
+ *metric = (sum_ * 1000 + process_intervals_ms_ / 2) / process_intervals_ms_;
return true;
}
@@ -284,7 +299,10 @@ int RateCounter::GetValueForEmptyInterval() const {
RateAccCounter::RateAccCounter(Clock* clock,
StatsCounterObserver* observer,
bool include_empty_intervals)
- : StatsCounter(clock, include_empty_intervals, observer) {}
+ : StatsCounter(clock,
+ kDefaultProcessIntervalMs,
+ include_empty_intervals,
+ observer) {}
void RateAccCounter::Set(int sample) {
StatsCounter::Set(sample);
@@ -293,8 +311,8 @@ void RateAccCounter::Set(int sample) {
bool RateAccCounter::GetMetric(int* metric) const {
if (num_samples_ == 0 || last_sum_ > sum_)
return false;
- *metric =
- ((sum_ - last_sum_) * 1000 + kProcessIntervalMs / 2) / kProcessIntervalMs;
+ *metric = ((sum_ - last_sum_) * 1000 + process_intervals_ms_ / 2) /
+ process_intervals_ms_;
return true;
}
« no previous file with comments | « webrtc/video/stats_counter.h ('k') | webrtc/video/stats_counter_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698