diff options
Diffstat (limited to 'variablespeed/jni/decode_buffer.cc')
-rw-r--r-- | variablespeed/jni/decode_buffer.cc | 86 |
1 files changed, 0 insertions, 86 deletions
diff --git a/variablespeed/jni/decode_buffer.cc b/variablespeed/jni/decode_buffer.cc deleted file mode 100644 index a08cfd6..0000000 --- a/variablespeed/jni/decode_buffer.cc +++ /dev/null @@ -1,86 +0,0 @@ -/* - * Copyright (C) 2011 The Android Open Source Project - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -#include <decode_buffer.h> - -namespace { - -static const size_t kNumberOfBytesPerSample = 2; - -} // namespace - -DecodeBuffer::DecodeBuffer(size_t sizeOfOneBuffer, size_t maxSize) - : sizeOfOneBuffer_(sizeOfOneBuffer), maxSize_(maxSize), - start_(0), end_(0), advancedCount_(0), data_() { - Clear(); -} - -DecodeBuffer::~DecodeBuffer() { - Clear(); -} - -size_t DecodeBuffer::GetSizeInBytes() const { - return kNumberOfBytesPerSample * (end_ - start_); -} - -bool DecodeBuffer::IsTooLarge() const { - return GetSizeInBytes() > maxSize_; -} - -void DecodeBuffer::AddData(int8_t* pointer, size_t lengthInBytes) { - for (size_t i = 0; i < lengthInBytes / kNumberOfBytesPerSample; ++i) { - PushValue(reinterpret_cast<int16*>(pointer)[i]); - } -} - -void DecodeBuffer::Clear() { - while (data_.size() > 0) { - delete[] data_.front(); - data_.erase(data_.begin()); - } - start_ = 0; - end_ = 0; - advancedCount_ = 0; -} - -size_t DecodeBuffer::GetTotalAdvancedCount() const { - return advancedCount_; -} - -void DecodeBuffer::AdvanceHeadPointerShorts(size_t numberOfShorts) { - start_ += numberOfShorts; - while (start_ > sizeOfOneBuffer_) { - data_.push_back(data_.front()); - data_.erase(data_.begin()); - start_ -= sizeOfOneBuffer_; - end_ -= sizeOfOneBuffer_; - } - advancedCount_ += numberOfShorts; -} - -void DecodeBuffer::PushValue(int16 value) { - size_t bufferIndex = end_ / sizeOfOneBuffer_; - if (bufferIndex >= data_.size()) { - data_.push_back(new int16[sizeOfOneBuffer_]); - } - data_.at(bufferIndex)[end_ % sizeOfOneBuffer_] = value; - ++end_; -} - -int16 DecodeBuffer::GetAtIndex(size_t index) { - return data_.at((start_ + index) / sizeOfOneBuffer_) - [(start_ + index) % sizeOfOneBuffer_]; -} |