diff options
Diffstat (limited to 'media/libstagefright/mpeg2ts/ABitReader.cpp')
-rw-r--r-- | media/libstagefright/mpeg2ts/ABitReader.cpp | 98 |
1 files changed, 0 insertions, 98 deletions
diff --git a/media/libstagefright/mpeg2ts/ABitReader.cpp b/media/libstagefright/mpeg2ts/ABitReader.cpp deleted file mode 100644 index 24c8df8..0000000 --- a/media/libstagefright/mpeg2ts/ABitReader.cpp +++ /dev/null @@ -1,98 +0,0 @@ -/* - * Copyright (C) 2010 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 "ABitReader.h" - -#include <media/stagefright/foundation/ADebug.h> - -namespace android { - -ABitReader::ABitReader(const uint8_t *data, size_t size) - : mData(data), - mSize(size), - mReservoir(0), - mNumBitsLeft(0) { -} - -void ABitReader::fillReservoir() { - CHECK_GT(mSize, 0u); - - mReservoir = 0; - size_t i; - for (i = 0; mSize > 0 && i < 4; ++i) { - mReservoir = (mReservoir << 8) | *mData; - - ++mData; - --mSize; - } - - mNumBitsLeft = 8 * i; - mReservoir <<= 32 - mNumBitsLeft; -} - -uint32_t ABitReader::getBits(size_t n) { - CHECK_LE(n, 32u); - - uint32_t result = 0; - while (n > 0) { - if (mNumBitsLeft == 0) { - fillReservoir(); - } - - size_t m = n; - if (m > mNumBitsLeft) { - m = mNumBitsLeft; - } - - result = (result << m) | (mReservoir >> (32 - m)); - mReservoir <<= m; - mNumBitsLeft -= m; - - n -= m; - } - - return result; -} - -void ABitReader::skipBits(size_t n) { - while (n > 32) { - getBits(32); - n -= 32; - } - - if (n > 0) { - getBits(n); - } -} - -void ABitReader::putBits(uint32_t x, size_t n) { - CHECK_LE(mNumBitsLeft + n, 32u); - - mReservoir = (mReservoir >> n) | (x << (32 - n)); - mNumBitsLeft += n; -} - -size_t ABitReader::numBitsLeft() const { - return mSize * 8 + mNumBitsLeft; -} - -const uint8_t *ABitReader::data() const { - CHECK_EQ(mNumBitsLeft % 8, 0u); - - return mData - mNumBitsLeft / 8; -} - -} // namespace android |