Said escape code is only six bits long, so that one has at least 25 - 6 bits in the bitstream reader's cache after reading it; therefore the whole following 18 bits (containing the actual code) are already in the bitstream reader's cache, making it unnecessary to reload the cache.
Signed-off-by: Andreas Rheinhardt <andreas.rheinha...@gmail.com> --- libavcodec/mpeg12dec.c | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) diff --git a/libavcodec/mpeg12dec.c b/libavcodec/mpeg12dec.c index 7b448d3648..3be90d7f25 100644 --- a/libavcodec/mpeg12dec.c +++ b/libavcodec/mpeg12dec.c @@ -524,10 +524,9 @@ static inline int mpeg2_decode_block_intra(MpegEncContext *s, } else { /* escape */ run = SHOW_UBITS(re, &s->gb, 6) + 1; - LAST_SKIP_BITS(re, &s->gb, 6); - UPDATE_CACHE(re, &s->gb); + SKIP_BITS(re, &s->gb, 6); level = SHOW_SBITS(re, &s->gb, 12); - SKIP_BITS(re, &s->gb, 12); + LAST_SKIP_BITS(re, &s->gb, 12); i += run; if (i > MAX_INDEX) break; @@ -606,10 +605,9 @@ static inline int mpeg2_fast_decode_block_intra(MpegEncContext *s, } else { /* escape */ run = SHOW_UBITS(re, &s->gb, 6) + 1; - LAST_SKIP_BITS(re, &s->gb, 6); - UPDATE_CACHE(re, &s->gb); + SKIP_BITS(re, &s->gb, 6); level = SHOW_SBITS(re, &s->gb, 12); - SKIP_BITS(re, &s->gb, 12); + LAST_SKIP_BITS(re, &s->gb, 12); i += run; j = scantable[i]; if (level < 0) { -- 2.25.1 _______________________________________________ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org https://ffmpeg.org/mailman/listinfo/ffmpeg-devel To unsubscribe, visit link above, or email ffmpeg-devel-requ...@ffmpeg.org with subject "unsubscribe".