summaryrefslogtreecommitdiffstats
path: root/include/media/stagefright/foundation/ABitReader.h
diff options
context:
space:
mode:
Diffstat (limited to 'include/media/stagefright/foundation/ABitReader.h')
-rw-r--r--include/media/stagefright/foundation/ABitReader.h22
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_