diff options
Diffstat (limited to 'include/media/stagefright/foundation/ABitReader.h')
-rw-r--r-- | include/media/stagefright/foundation/ABitReader.h | 22 |
1 files changed, 19 insertions, 3 deletions
diff --git a/include/media/stagefright/foundation/ABitReader.h b/include/media/stagefright/foundation/ABitReader.h index 5510b12..c3bf0ff 100644 --- a/include/media/stagefright/foundation/ABitReader.h +++ b/include/media/stagefright/foundation/ABitReader.h @@ -25,8 +25,10 @@ namespace android { -struct ABitReader { +class ABitReader { +public: ABitReader(const uint8_t *data, size_t size); + virtual ~ABitReader(); uint32_t getBits(size_t n); void skipBits(size_t n); @@ -37,18 +39,32 @@ struct ABitReader { const uint8_t *data() const; -private: +protected: const uint8_t *mData; size_t mSize; uint32_t mReservoir; // left-aligned bits size_t mNumBitsLeft; - void fillReservoir(); + virtual void fillReservoir(); DISALLOW_EVIL_CONSTRUCTORS(ABitReader); }; +class NALBitReader : public ABitReader { +public: + NALBitReader(const uint8_t *data, size_t size); + + bool atLeastNumBitsLeft(size_t n) const; + +private: + int32_t mNumZeros; + + virtual void fillReservoir(); + + DISALLOW_EVIL_CONSTRUCTORS(NALBitReader); +}; + } // namespace android #endif // A_BIT_READER_H_ |