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

Side by Side Diff: webrtc/modules/video_coding/utility/include/moving_average.h

Issue 1440873005: modules/video_coding/utility: Remove include (Closed) Base URL: https://chromium.googlesource.com/external/webrtc.git@master
Patch Set: Fix after rebase mistake Created 5 years, 1 month 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 unified diff | Download patch
OLDNEW
(Empty)
1 /*
2 * Copyright (c) 2015 The WebRTC project authors. All Rights Reserved.
3 *
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
6 * tree. An additional intellectual property rights grant can be found
7 * in the file PATENTS. All contributing project authors may
8 * be found in the AUTHORS file in the root of the source tree.
9 */
10
11 #ifndef WEBRTC_MODULES_VIDEO_CODING_UTILITY_MOVING_AVERAGE_H_
12 #define WEBRTC_MODULES_VIDEO_CODING_UTILITY_MOVING_AVERAGE_H_
13
14 #include <list>
15
16 #include "webrtc/typedefs.h"
17
18 namespace webrtc {
19 template<class T>
20 class MovingAverage {
21 public:
22 MovingAverage();
23 void AddSample(T sample);
24 bool GetAverage(size_t num_samples, T* average);
25 void Reset();
26 int size();
27
28 private:
29 T sum_;
30 std::list<T> samples_;
31 };
32
33 template<class T>
34 MovingAverage<T>::MovingAverage() : sum_(static_cast<T>(0)) {
35 }
36
37 template<class T>
38 void MovingAverage<T>::AddSample(T sample) {
39 samples_.push_back(sample);
40 sum_ += sample;
41 }
42
43 template<class T>
44 bool MovingAverage<T>::GetAverage(size_t num_samples, T* avg) {
45 if (num_samples > samples_.size())
46 return false;
47
48 // Remove old samples.
49 while (num_samples < samples_.size()) {
50 sum_ -= samples_.front();
51 samples_.pop_front();
52 }
53
54 *avg = sum_ / static_cast<T>(num_samples);
55 return true;
56 }
57
58 template<class T>
59 void MovingAverage<T>::Reset() {
60 sum_ = static_cast<T>(0);
61 samples_.clear();
62 }
63
64 template<class T>
65 int MovingAverage<T>::size() {
66 return samples_.size();
67 }
68
69 } // namespace webrtc
70
71 #endif // WEBRTC_MODULES_VIDEO_CODING_MOVING_AVERAGE_SCALER_H_
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698