diff options
author | Andreas Huber <andih@google.com> | 2010-08-19 10:39:47 -0700 |
---|---|---|
committer | Andreas Huber <andih@google.com> | 2010-08-19 10:39:47 -0700 |
commit | 85f12e9b9062402d6110df3f7099707912040edb (patch) | |
tree | 7336723f61d09c2a72b36cf752c717c24a2d9ff6 /media/libstagefright/mpeg2ts/ABitReader.cpp | |
parent | 34c9ad88d3d827cca0c7b5f2fb1b0d4a1a20a2d1 (diff) | |
download | frameworks_av-85f12e9b9062402d6110df3f7099707912040edb.zip frameworks_av-85f12e9b9062402d6110df3f7099707912040edb.tar.gz frameworks_av-85f12e9b9062402d6110df3f7099707912040edb.tar.bz2 |
In the absence of width/height information in the sdp, extract the dimensions from the avc codec specific data.
Change-Id: I98c4194593c7e6e24f6fc339c862245111800293
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 |