Index: webrtc/modules/audio_processing/agc/circular_buffer.cc |
diff --git a/webrtc/modules/audio_processing/agc/circular_buffer.cc b/webrtc/modules/audio_processing/agc/circular_buffer.cc |
deleted file mode 100644 |
index 8ecb76008f7de71e14234daa8524010caa883747..0000000000000000000000000000000000000000 |
--- a/webrtc/modules/audio_processing/agc/circular_buffer.cc |
+++ /dev/null |
@@ -1,136 +0,0 @@ |
-/* |
- * Copyright (c) 2012 The WebRTC project authors. All Rights Reserved. |
- * |
- * Use of this source code is governed by a BSD-style license |
- * that can be found in the LICENSE file in the root of the source |
- * tree. An additional intellectual property rights grant can be found |
- * in the file PATENTS. All contributing project authors may |
- * be found in the AUTHORS file in the root of the source tree. |
- */ |
- |
-#include "webrtc/modules/audio_processing/agc/circular_buffer.h" |
- |
-#include <assert.h> |
-#include <stdlib.h> |
- |
-namespace webrtc { |
- |
-AgcCircularBuffer::AgcCircularBuffer(int buffer_size) |
- : buffer_(new double[buffer_size]), |
- is_full_(false), |
- index_(0), |
- buffer_size_(buffer_size), |
- sum_(0) {} |
- |
-AgcCircularBuffer::~AgcCircularBuffer() {} |
- |
-void AgcCircularBuffer::Reset() { |
- is_full_ = false; |
- index_ = 0; |
- sum_ = 0; |
-} |
- |
-AgcCircularBuffer* AgcCircularBuffer::Create(int buffer_size) { |
- if (buffer_size <= 0) |
- return NULL; |
- return new AgcCircularBuffer(buffer_size); |
-} |
- |
-double AgcCircularBuffer::Oldest() const { |
- if (!is_full_) |
- return buffer_[0]; |
- else |
- return buffer_[index_]; |
-} |
- |
-double AgcCircularBuffer::Mean() { |
- double m; |
- if (is_full_) { |
- m = sum_ / buffer_size_; |
- } else { |
- if (index_ > 0) |
- m = sum_ / index_; |
- else |
- m = 0; |
- } |
- return m; |
-} |
- |
-void AgcCircularBuffer::Insert(double value) { |
- if (is_full_) { |
- sum_ -= buffer_[index_]; |
- } |
- sum_ += value; |
- buffer_[index_] = value; |
- index_++; |
- if (index_ >= buffer_size_) { |
- is_full_ = true; |
- index_ = 0; |
- } |
-} |
-int AgcCircularBuffer::BufferLevel() { |
- if (is_full_) |
- return buffer_size_; |
- return index_; |
-} |
- |
-int AgcCircularBuffer::Get(int index, double* value) const { |
- int err = ConvertToLinearIndex(&index); |
- if (err < 0) |
- return -1; |
- *value = buffer_[index]; |
- return 0; |
-} |
- |
-int AgcCircularBuffer::Set(int index, double value) { |
- int err = ConvertToLinearIndex(&index); |
- if (err < 0) |
- return -1; |
- |
- sum_ -= buffer_[index]; |
- buffer_[index] = value; |
- sum_ += value; |
- return 0; |
-} |
- |
-int AgcCircularBuffer::ConvertToLinearIndex(int* index) const { |
- if (*index < 0 || *index >= buffer_size_) |
- return -1; |
- |
- if (!is_full_ && *index >= index_) |
- return -1; |
- |
- *index = index_ - 1 - *index; |
- if (*index < 0) |
- *index += buffer_size_; |
- return 0; |
-} |
- |
-int AgcCircularBuffer::RemoveTransient(int width_threshold, |
- double val_threshold) { |
- if (!is_full_ && index_ < width_threshold + 2) |
- return 0; |
- |
- int index_1 = 0; |
- int index_2 = width_threshold + 1; |
- double v = 0; |
- if (Get(index_1, &v) < 0) |
- return -1; |
- if (v < val_threshold) { |
- Set(index_1, 0); |
- int index; |
- for (index = index_2; index > index_1; index--) { |
- if (Get(index, &v) < 0) |
- return -1; |
- if (v < val_threshold) |
- break; |
- } |
- for (; index > index_1; index--) { |
- if (Set(index, 0.0) < 0) |
- return -1; |
- } |
- } |
- return 0; |
-} |
- |
-} // namespace webrtc |