From: John Koleszar Date: Tue, 12 Mar 2013 21:30:18 +0000 (-0700) Subject: disambiguate superframe index in vp9_stop_encode() X-Git-Tag: v1.3.0~1151^2~59^2 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=872fc3ded88da483e723d5aa0a19993dff191fc7;p=libvpx disambiguate superframe index in vp9_stop_encode() 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 --- diff --git a/vp9/encoder/vp9_boolhuff.c b/vp9/encoder/vp9_boolhuff.c index a590902c2..213742182 100644 --- a/vp9/encoder/vp9_boolhuff.c +++ b/vp9/encoder/vp9_boolhuff.c @@ -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; }