ref: a425e2cc0658ffdcc4dbc97edb62e24bc8a794a5
parent: 472669befb732396e10e15270059205683c73b8f
author: John Koleszar <jkoleszar@google.com>
date: Thu Jun 6 14:03:44 EDT 2013
Add marker bit to bool-coded partition start Adds a marker bit to allow distinguishing the frame header from its residual data. Change-Id: Id75d47acc9e5a97007e4690c4f8748a4ce63e641
--- a/test/vp9_boolcoder_test.cc
+++ b/test/vp9_boolcoder_test.cc
@@ -68,6 +68,9 @@
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);
--- 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 @@
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) {
--- a/vp9/encoder/vp9_boolhuff.c
+++ b/vp9/encoder/vp9_boolhuff.c
@@ -47,6 +47,7 @@
br->count = -24;
br->buffer = source;
br->pos = 0;
+ vp9_write_bit(br, 0);
}
void vp9_stop_encode(vp9_writer *br) {
--
⑨