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
diff --git a/test/vp9_boolcoder_test.cc b/test/vp9_boolcoder_test.cc
index 5d87ff6..42b2229 100644
--- 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);
diff --git a/vp9/decoder/vp9_dboolhuff.c b/vp9/decoder/vp9_dboolhuff.c
index 9921ea7..df77d65 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 @@
     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 86143ca..0f1aa59 100644
--- 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) {