Chromium Code Reviews| Index: webrtc/modules/video_coding/utility/moving_average.h |
| diff --git a/webrtc/modules/video_coding/utility/moving_average.h b/webrtc/modules/video_coding/utility/moving_average.h |
| index cdad50f0f9096b3bd8df3f0ac2de49a7ec020a2c..2fd47c8fe7bd533a2ecb64c6d881e3e44792518b 100644 |
| --- a/webrtc/modules/video_coding/utility/moving_average.h |
| +++ b/webrtc/modules/video_coding/utility/moving_average.h |
| @@ -13,61 +13,24 @@ |
| #include <stddef.h> |
| -#include <list> |
| - |
| -#include "webrtc/typedefs.h" |
| +#include <vector> |
| namespace webrtc { |
| -template <class T> |
| class MovingAverage { |
| public: |
| MovingAverage(); |
| - void AddSample(T sample); |
| - bool GetAverage(size_t num_samples, T* average); |
| + explicit MovingAverage(size_t s); |
| + void AddSample(int sample); |
| + int GetAverage() const; |
| + int GetAverage(size_t num_samples) const; |
| void Reset(); |
| - int size(); |
| + size_t size() const; |
| private: |
| - T sum_; |
| - std::list<T> samples_; |
| + size_t count_ = 0; |
| + int sum_ = 0; |
| + std::vector<int> samples_; |
|
sakal
2016/09/05 12:28:11
This vector does not contain samples. Maybe sum_hi
|
| }; |
| - |
| -template <class T> |
| -MovingAverage<T>::MovingAverage() |
| - : sum_(static_cast<T>(0)) {} |
| - |
| -template <class T> |
| -void MovingAverage<T>::AddSample(T sample) { |
| - samples_.push_back(sample); |
| - sum_ += sample; |
| -} |
| - |
| -template <class T> |
| -bool MovingAverage<T>::GetAverage(size_t num_samples, T* avg) { |
| - if (num_samples > samples_.size()) |
| - return false; |
| - |
| - // Remove old samples. |
| - while (num_samples < samples_.size()) { |
| - sum_ -= samples_.front(); |
| - samples_.pop_front(); |
| - } |
| - |
| - *avg = sum_ / static_cast<T>(num_samples); |
| - return true; |
| -} |
| - |
| -template <class T> |
| -void MovingAverage<T>::Reset() { |
| - sum_ = static_cast<T>(0); |
| - samples_.clear(); |
| -} |
| - |
| -template <class T> |
| -int MovingAverage<T>::size() { |
| - return samples_.size(); |
| -} |
| - |
| } // namespace webrtc |
| #endif // WEBRTC_MODULES_VIDEO_CODING_UTILITY_MOVING_AVERAGE_H_ |