diff options
author | Chong Zhang <chz@google.com> | 2014-06-26 19:55:23 -0700 |
---|---|---|
committer | Chong Zhang <chz@google.com> | 2014-07-08 10:18:33 -0700 |
commit | 862f8455eaacc1ffb5d8911f0bc7ecc3cf7ec46c (patch) | |
tree | 27f7ae818997dde8df89fac5b65fd21180b21911 /include/media/stagefright/foundation | |
parent | e8f2c6cfe9afc5b303ab6b0fb51e18ddce512b54 (diff) | |
download | frameworks_av-862f8455eaacc1ffb5d8911f0bc7ecc3cf7ec46c.zip frameworks_av-862f8455eaacc1ffb5d8911f0bc7ecc3cf7ec46c.tar.gz frameworks_av-862f8455eaacc1ffb5d8911f0bc7ecc3cf7ec46c.tar.bz2 |
handle emulation_prevention_three_bytes for AVC
bug: 15917805
Change-Id: I824fe7eea807f8faba6b149c31890b7a5df87825
Diffstat (limited to 'include/media/stagefright/foundation')
-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_ |