| OLD | NEW | 
|   1 /* |   1 /* | 
|   2  *  Copyright (c) 2013 The WebRTC project authors. All Rights Reserved. |   2  *  Copyright (c) 2013 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  | 
|  11 #include "webrtc/modules/audio_processing/transient/moving_moments.h" |  11 #include "webrtc/modules/audio_processing/transient/moving_moments.h" | 
|  12  |  12  | 
|  13 #include <math.h> |  13 #include <math.h> | 
|  14 #include <string.h> |  14 #include <string.h> | 
|  15  |  15  | 
|  16 #include "webrtc/base/scoped_ptr.h" |  16 #include "webrtc/base/checks.h" | 
|  17  |  17  | 
|  18 namespace webrtc { |  18 namespace webrtc { | 
|  19  |  19  | 
|  20 MovingMoments::MovingMoments(size_t length) |  20 MovingMoments::MovingMoments(size_t length) | 
|  21     : length_(length), |  21     : length_(length), | 
|  22       queue_(), |  22       queue_(), | 
|  23       sum_(0.0), |  23       sum_(0.0), | 
|  24       sum_of_squares_(0.0) { |  24       sum_of_squares_(0.0) { | 
|  25   assert(length > 0); |  25   RTC_DCHECK_GT(length, 0u); | 
|  26   for (size_t i = 0; i < length; ++i) { |  26   for (size_t i = 0; i < length; ++i) { | 
|  27     queue_.push(0.0); |  27     queue_.push(0.0); | 
|  28   } |  28   } | 
|  29 } |  29 } | 
|  30  |  30  | 
|  31 MovingMoments::~MovingMoments() {} |  31 MovingMoments::~MovingMoments() {} | 
|  32  |  32  | 
|  33 void MovingMoments::CalculateMoments(const float* in, size_t in_length, |  33 void MovingMoments::CalculateMoments(const float* in, size_t in_length, | 
|  34                                      float* first, float* second) { |  34                                      float* first, float* second) { | 
|  35   assert(in && in_length > 0 && first && second); |  35   RTC_DCHECK(in && in_length > 0 && first && second); | 
|  36  |  36  | 
|  37   for (size_t i = 0; i < in_length; ++i) { |  37   for (size_t i = 0; i < in_length; ++i) { | 
|  38     const float old_value = queue_.front(); |  38     const float old_value = queue_.front(); | 
|  39     queue_.pop(); |  39     queue_.pop(); | 
|  40     queue_.push(in[i]); |  40     queue_.push(in[i]); | 
|  41  |  41  | 
|  42     sum_ += in[i] - old_value; |  42     sum_ += in[i] - old_value; | 
|  43     sum_of_squares_ += in[i] * in[i] - old_value * old_value; |  43     sum_of_squares_ += in[i] * in[i] - old_value * old_value; | 
|  44     first[i] = sum_ / length_; |  44     first[i] = sum_ / length_; | 
|  45     second[i] = sum_of_squares_ / length_; |  45     second[i] = sum_of_squares_ / length_; | 
|  46   } |  46   } | 
|  47 } |  47 } | 
|  48  |  48  | 
|  49 }  // namespace webrtc |  49 }  // namespace webrtc | 
| OLD | NEW |