OLD | NEW |
1 /* | 1 /* |
2 * Copyright (c) 2016 The WebRTC project authors. All Rights Reserved. | 2 * Copyright (c) 2016 The WebRTC project authors. All Rights Reserved. |
3 * | 3 * |
4 * Use of this source code is governed by a BSD-style license | 4 * Use of this source code is governed by a BSD-style license |
5 * that can be found in the LICENSE file in the root of the source | 5 * that can be found in the LICENSE file in the root of the source |
6 * tree. An additional intellectual property rights grant can be found | 6 * tree. An additional intellectual property rights grant can be found |
7 * in the file PATENTS. All contributing project authors may | 7 * in the file PATENTS. All contributing project authors may |
8 * be found in the AUTHORS file in the root of the source tree. | 8 * be found in the AUTHORS file in the root of the source tree. |
9 */ | 9 */ |
10 | 10 |
(...skipping 81 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
92 | 92 |
93 // Reports metrics for elapsed intervals to AggregatedCounter and pauses stats | 93 // Reports metrics for elapsed intervals to AggregatedCounter and pauses stats |
94 // (i.e. empty intervals will be discarded until next sample is added). | 94 // (i.e. empty intervals will be discarded until next sample is added). |
95 void ProcessAndPause(); | 95 void ProcessAndPause(); |
96 | 96 |
97 // Checks if a sample has been added (i.e. Add or Set called). | 97 // Checks if a sample has been added (i.e. Add or Set called). |
98 bool HasSample() const; | 98 bool HasSample() const; |
99 | 99 |
100 protected: | 100 protected: |
101 StatsCounter(Clock* clock, | 101 StatsCounter(Clock* clock, |
| 102 int64_t process_intervals_ms, |
102 bool include_empty_intervals, | 103 bool include_empty_intervals, |
103 StatsCounterObserver* observer); | 104 StatsCounterObserver* observer); |
104 | 105 |
105 void Add(int sample); | 106 void Add(int sample); |
106 void Set(int sample); | 107 void Set(int sample); |
107 | 108 |
108 int max_; | 109 int max_; |
109 int64_t sum_; | 110 int64_t sum_; |
110 int64_t num_samples_; | 111 int64_t num_samples_; |
111 int64_t last_sum_; | 112 int64_t last_sum_; |
112 | 113 |
113 const std::unique_ptr<AggregatedCounter> aggregated_counter_; | 114 const std::unique_ptr<AggregatedCounter> aggregated_counter_; |
| 115 const int64_t process_intervals_ms_; |
114 | 116 |
115 private: | 117 private: |
116 bool TimeToProcess(int* num_elapsed_intervals); | 118 bool TimeToProcess(int* num_elapsed_intervals); |
117 void TryProcess(); | 119 void TryProcess(); |
118 void ReportMetricToAggregatedCounter(int value, int num_values_to_add) const; | 120 void ReportMetricToAggregatedCounter(int value, int num_values_to_add) const; |
119 bool IncludeEmptyIntervals() const; | 121 bool IncludeEmptyIntervals() const; |
120 | 122 |
121 Clock* const clock_; | 123 Clock* const clock_; |
122 const bool include_empty_intervals_; | 124 const bool include_empty_intervals_; |
123 const std::unique_ptr<StatsCounterObserver> observer_; | 125 const std::unique_ptr<StatsCounterObserver> observer_; |
(...skipping 30 matching lines...) Expand all Loading... |
154 }; | 156 }; |
155 | 157 |
156 // MaxCounter: maximum of samples | 158 // MaxCounter: maximum of samples |
157 // | 159 // |
158 // | * * * | * * | ... | 160 // | * * * | * * | ... |
159 // | Add(5) Add(1) Add(6) | Add(5) Add(5) | | 161 // | Add(5) Add(1) Add(6) | Add(5) Add(5) | |
160 // GetMetric | max: (5, 1, 6) | max: (5, 5) | | 162 // GetMetric | max: (5, 1, 6) | max: (5, 5) | |
161 // | 163 // |
162 class MaxCounter : public StatsCounter { | 164 class MaxCounter : public StatsCounter { |
163 public: | 165 public: |
164 MaxCounter(Clock* clock, StatsCounterObserver* observer); | 166 MaxCounter(Clock* clock, |
| 167 StatsCounterObserver* observer, |
| 168 int64_t process_intervals_ms); |
165 ~MaxCounter() override {} | 169 ~MaxCounter() override {} |
166 | 170 |
167 void Add(int sample); | 171 void Add(int sample); |
168 | 172 |
169 private: | 173 private: |
170 bool GetMetric(int* metric) const override; | 174 bool GetMetric(int* metric) const override; |
171 int GetValueForEmptyInterval() const override; | 175 int GetValueForEmptyInterval() const override; |
172 | 176 |
173 RTC_DISALLOW_COPY_AND_ASSIGN(MaxCounter); | 177 RTC_DISALLOW_COPY_AND_ASSIGN(MaxCounter); |
174 }; | 178 }; |
(...skipping 88 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
263 private: | 267 private: |
264 bool GetMetric(int* metric) const override; | 268 bool GetMetric(int* metric) const override; |
265 int GetValueForEmptyInterval() const override; // Returns zero. | 269 int GetValueForEmptyInterval() const override; // Returns zero. |
266 | 270 |
267 RTC_DISALLOW_COPY_AND_ASSIGN(RateAccCounter); | 271 RTC_DISALLOW_COPY_AND_ASSIGN(RateAccCounter); |
268 }; | 272 }; |
269 | 273 |
270 } // namespace webrtc | 274 } // namespace webrtc |
271 | 275 |
272 #endif // WEBRTC_VIDEO_STATS_COUNTER_H_ | 276 #endif // WEBRTC_VIDEO_STATS_COUNTER_H_ |
OLD | NEW |