diff --git a/test/vp9_boolcoder_test.cc b/test/vp9_boolcoder_test.cc index 5d87ff6bf..42b2229bf 100644 --- a/test/vp9_boolcoder_test.cc +++ b/test/vp9_boolcoder_test.cc @@ -68,6 +68,9 @@ TEST(VP9, TestBitIO) { vp9_stop_encode(&bw); + // First bit should be zero + GTEST_ASSERT_EQ(bw_buffer[0] & 0x80, 0); + vp9_reader br; vp9_reader_init(&br, bw_buffer, buffer_size); bit_rnd.Reset(random_seed); diff --git a/vp9/decoder/vp9_dboolhuff.c b/vp9/decoder/vp9_dboolhuff.c index 9921ea727..df77d650d 100644 --- a/vp9/decoder/vp9_dboolhuff.c +++ b/vp9/decoder/vp9_dboolhuff.c @@ -14,6 +14,8 @@ #include "vp9/decoder/vp9_dboolhuff.h" 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; @@ -24,7 +26,8 @@ int vp9_reader_init(vp9_reader *r, const uint8_t *buffer, size_t size) { return 1; vp9_reader_fill(r); - return 0; + marker_bit = vp9_read_bit(r); + return marker_bit != 0; } void vp9_reader_fill(vp9_reader *r) { diff --git a/vp9/encoder/vp9_boolhuff.c b/vp9/encoder/vp9_boolhuff.c index 86143ca57..0f1aa594e 100644 --- a/vp9/encoder/vp9_boolhuff.c +++ b/vp9/encoder/vp9_boolhuff.c @@ -47,6 +47,7 @@ void vp9_start_encode(vp9_writer *br, uint8_t *source) { br->count = -24; br->buffer = source; br->pos = 0; + vp9_write_bit(br, 0); } void vp9_stop_encode(vp9_writer *br) {