]> granicus.if.org Git - libvpx/commitdiff
disambiguate superframe index in vp9_stop_encode()
authorJohn Koleszar <jkoleszar@google.com>
Tue, 12 Mar 2013 21:30:18 +0000 (14:30 -0700)
committerJohn Koleszar <jkoleszar@google.com>
Tue, 12 Mar 2013 21:30:23 +0000 (14:30 -0700)
If the bool-coded partition naturally ends in a byte that matches the
superframe index marker, it could lead to a parse error. This commit
ensures that if such a marker is seen, it is padded out with an
additional zero byte to disambiguate it.

Change-Id: Id977de05745b6fa9ef08afb71e210a2a3ecca02e

vp9/encoder/vp9_boolhuff.c

index a590902c26ebeb375a8fd60f627e5694c4edf01e..2137421827562fd991237270785d258d96c0f6ab 100644 (file)
@@ -53,6 +53,10 @@ void vp9_stop_encode(BOOL_CODER *br) {
 
   for (i = 0; i < 32; i++)
     encode_bool(br, 0, 128);
+
+  // Ensure there's no ambigous collision with any index marker bytes
+  if ((br->buffer[br->pos - 1] & 0xe0) == 0xc0)
+    br->buffer[br->pos++] = 0;
 }