OSDN Git Service

add bitstream_hasnext function
authoryoya <yoya@awm.jp>
Wed, 11 Dec 2013 17:34:56 +0000 (02:34 +0900)
committeryoya <yoya@awm.jp>
Wed, 11 Dec 2013 17:34:56 +0000 (02:34 +0900)
src/bitstream.c
src/bitstream.h

index 25867f6..259ec66 100644 (file)
@@ -525,6 +525,16 @@ bitstream_length(bitstream_t *bs) {
     return bs->data_len;
 }
 
+unsigned long
+bitstream_hasnext(bitstream_t *bs, int byte_len, int bit_len) {
+    int byte_offset = bs->byte_offset + byte_len;
+    int bit_offset  = bs->bit_offset  + bit_len;
+    if (bs->data_len < (byte_offset + (bit_offset + 7) / 8)) {
+        return 0; // false
+    }
+    return 1; // true
+}
+
 /*
  * utility
  */
index cd1e4d2..80e2f54 100644 (file)
@@ -73,6 +73,9 @@ extern int bitstream_realloc(bitstream_t *bs);
 /* direct access */
 extern unsigned char *bitstream_buffer(bitstream_t *bs, unsigned long byte_offset);
 extern unsigned long bitstream_length(bitstream_t *bs);
+extern unsigned long bitstream_hasnext(bitstream_t *bs,
+                                      int byte_len, int bit_len);
+
 
 /* utility */