vl/rbsp: fix another three byte not detected
authorLeo Liu <leo.liu@amd.com>
Mon, 22 Aug 2016 16:05:53 +0000 (12:05 -0400)
committerLeo Liu <leo.liu@amd.com>
Wed, 24 Aug 2016 15:17:16 +0000 (11:17 -0400)
This happens when three byte "00 00 03" is partly loaded to
vlc->buffer, thus at the bottom of buffer with valid bits is
"00" or "00 00" and left  like "00 03" or "03" in the data,
so that it will not be detected by three byte emulation check.
The reason for that is the escaped bit was set to 0 from the
rbsp init.

Signed-off-by: Leo Liu <leo.liu@amd.com>
Acked-by: Christian König <christian.koenig@amd.com>
src/gallium/auxiliary/vl/vl_rbsp.h

index c8bebff4de6cd17d58d157f2f7b471f761996699..160b2f82773cd55053ed84fd4a6049661e8d408c 100644 (file)
@@ -56,7 +56,7 @@ static inline void vl_rbsp_init(struct vl_rbsp *rbsp, struct vl_vlc *nal, unsign
    /* copy the position */
    rbsp->nal = *nal;
 
-   rbsp->escaped = 0;
+   rbsp->escaped = 16;
 
    /* search for the end of the NAL unit */
    while (vl_vlc_search_byte(nal, num_bits, 0x00)) {