summaryrefslogtreecommitdiffstats
path: root/src/gallium/auxiliary/vl/vl_rbsp.h
diff options
context:
space:
mode:
authorLeo Liu <[email protected]>2016-09-06 13:14:48 -0400
committerLeo Liu <[email protected]>2016-09-12 10:09:27 -0400
commit6a7f79af9b1ac4380e46c1bc438a7a491d1d99da (patch)
treec9c149db89f48593f0051ae3dee3db67dfbafa73 /src/gallium/auxiliary/vl/vl_rbsp.h
parent2da15a3b89aa6ab6f1a7f78f57e3ef91b2ddda50 (diff)
vl/rbsp: match initial escaped bits with valid in the buffer
Otherwise the check for the three byte will not make sense. Signed-off-by: Leo Liu <[email protected]>
Diffstat (limited to 'src/gallium/auxiliary/vl/vl_rbsp.h')
-rw-r--r--src/gallium/auxiliary/vl/vl_rbsp.h6
1 files changed, 4 insertions, 2 deletions
diff --git a/src/gallium/auxiliary/vl/vl_rbsp.h b/src/gallium/auxiliary/vl/vl_rbsp.h
index 160b2f82773..4d90c2de09c 100644
--- a/src/gallium/auxiliary/vl/vl_rbsp.h
+++ b/src/gallium/auxiliary/vl/vl_rbsp.h
@@ -56,8 +56,6 @@ static inline void vl_rbsp_init(struct vl_rbsp *rbsp, struct vl_vlc *nal, unsign
/* copy the position */
rbsp->nal = *nal;
- rbsp->escaped = 16;
-
/* search for the end of the NAL unit */
while (vl_vlc_search_byte(nal, num_bits, 0x00)) {
if (vl_vlc_peekbits(nal, 24) == 0x000001 ||
@@ -76,6 +74,10 @@ static inline void vl_rbsp_init(struct vl_rbsp *rbsp, struct vl_vlc *nal, unsign
i += 8;
}
}
+
+ valid = vl_vlc_valid_bits(&rbsp->nal);
+
+ rbsp->escaped = (valid >= 16) ? 16 : ((valid >= 8) ? 8 : 0);
}
/**