Index: source/libvpx/vp9/decoder/vp9_dboolhuff.c |
=================================================================== |
--- source/libvpx/vp9/decoder/vp9_dboolhuff.c (revision 240950) |
+++ source/libvpx/vp9/decoder/vp9_dboolhuff.c (working copy) |
@@ -18,32 +18,28 @@ |
// Even relatively modest values like 100 would work fine. |
#define LOTS_OF_BITS 0x40000000 |
- |
int vp9_reader_init(vp9_reader *r, const uint8_t *buffer, size_t size) { |
- int marker_bit; |
- |
- r->buffer_end = buffer + size; |
- r->buffer = buffer; |
- r->value = 0; |
- r->count = -8; |
- r->range = 255; |
- |
- if (size && !buffer) |
+ if (size && !buffer) { |
return 1; |
- |
- vp9_reader_fill(r); |
- marker_bit = vp9_read_bit(r); |
- return marker_bit != 0; |
+ } else { |
+ r->buffer_end = buffer + size; |
+ r->buffer = buffer; |
+ r->value = 0; |
+ r->count = -8; |
+ r->range = 255; |
+ vp9_reader_fill(r); |
+ return vp9_read_bit(r) != 0; // marker bit |
+ } |
} |
void vp9_reader_fill(vp9_reader *r) { |
const uint8_t *const buffer_end = r->buffer_end; |
const uint8_t *buffer = r->buffer; |
- VP9_BD_VALUE value = r->value; |
+ BD_VALUE value = r->value; |
int count = r->count; |
- int shift = BD_VALUE_SIZE - 8 - (count + 8); |
+ int shift = BD_VALUE_SIZE - CHAR_BIT - (count + CHAR_BIT); |
int loop_end = 0; |
- const int bits_left = (int)((buffer_end - buffer)*CHAR_BIT); |
+ const int bits_left = (int)((buffer_end - buffer) * CHAR_BIT); |
const int x = shift + CHAR_BIT - bits_left; |
if (x >= 0) { |
@@ -54,7 +50,7 @@ |
if (x < 0 || bits_left) { |
while (shift >= loop_end) { |
count += CHAR_BIT; |
- value |= (VP9_BD_VALUE)*buffer++ << shift; |
+ value |= (BD_VALUE)*buffer++ << shift; |
shift -= CHAR_BIT; |
} |
} |