| Index: webrtc/video/stats_counter.h
|
| diff --git a/webrtc/video/stats_counter.h b/webrtc/video/stats_counter.h
|
| index 6dc94b4328d2deecaaaaac7e6feedab5682169be..4fa676cfdf4a44c6423cb95390300c808709fe24 100644
|
| --- a/webrtc/video/stats_counter.h
|
| +++ b/webrtc/video/stats_counter.h
|
| @@ -99,6 +99,13 @@ class StatsCounter {
|
| // (i.e. empty intervals will be discarded until next sample is added).
|
| void ProcessAndPause();
|
|
|
| + // As above with a minimum pause time. Added samples within this interval will
|
| + // not resume the stats (i.e. stop the pause).
|
| + void ProcessAndPauseForDuration(int64_t min_pause_time_ms);
|
| +
|
| + // Reports metrics for elapsed intervals to AggregatedCounter and stops pause.
|
| + void ProcessAndStopPause();
|
| +
|
| // Checks if a sample has been added (i.e. Add or Set called).
|
| bool HasSample() const;
|
|
|
| @@ -109,7 +116,8 @@ class StatsCounter {
|
| StatsCounterObserver* observer);
|
|
|
| void Add(int sample);
|
| - void Set(int sample, uint32_t stream_id);
|
| + void Set(int64_t sample, uint32_t stream_id);
|
| + void SetLast(int64_t sample, uint32_t stream_id);
|
|
|
| const bool include_empty_intervals_;
|
| const int64_t process_intervals_ms_;
|
| @@ -121,11 +129,15 @@ class StatsCounter {
|
| void TryProcess();
|
| void ReportMetricToAggregatedCounter(int value, int num_values_to_add) const;
|
| bool IncludeEmptyIntervals() const;
|
| + void Resume();
|
| + void ResumeIfMinTimePassed();
|
|
|
| Clock* const clock_;
|
| const std::unique_ptr<StatsCounterObserver> observer_;
|
| int64_t last_process_time_ms_;
|
| bool paused_;
|
| + int64_t pause_time_ms_;
|
| + int64_t min_pause_time_ms_;
|
| };
|
|
|
| // AvgCounter: average of samples
|
| @@ -250,7 +262,7 @@ class RateCounter : public StatsCounter {
|
| // | * * * | * * | ...
|
| // | Set(5) Set(6) Set(8) | Set(11) Set(13) |
|
| // |<------ 2 sec ------->| |
|
| -// GetMetric | 8 / 2 | (13 - 8) / 2 |
|
| +// GetMetric | (8 - 0) / 2 | (13 - 8) / 2 |
|
| //
|
| // |include_empty_intervals|: If set, intervals without samples will be included
|
| // in the stats. The value for an interval is
|
| @@ -263,7 +275,11 @@ class RateAccCounter : public StatsCounter {
|
| bool include_empty_intervals);
|
| ~RateAccCounter() override {}
|
|
|
| - void Set(int sample, uint32_t stream_id);
|
| + void Set(int64_t sample, uint32_t stream_id);
|
| +
|
| + // Sets the value for previous interval.
|
| + // To be used if a value other than zero is initially required.
|
| + void SetLast(int64_t sample, uint32_t stream_id);
|
|
|
| private:
|
| bool GetMetric(int* metric) const override;
|
|
|