OSDN Git Service

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 c8bebff..160b2f8 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)) {