[FFmpeg-cvslog] avcodec/eamad: Optimize processing escape codes

Andreas Rheinhardt git at videolan.org
Sun Mar 16 05:31:09 EET 2025


ffmpeg | branch: master | Andreas Rheinhardt <andreas.rheinhardt at outlook.com> | Fri Mar  7 04:20:52 2025 +0100| [f6366cb5ea1d0d84ba7592155b3f30c85645edb4] | committer: Andreas Rheinhardt

avcodec/eamad: Optimize processing escape codes

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 16 bits (containing the actual code) are already in the
bitstream reader's cache, making it unnecessary to reload the cache.

This is the eamad analogue of fe9bc1cc45e2bebba1efa7b9a20b0d66679bf2d5.

Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt at outlook.com>

> http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=f6366cb5ea1d0d84ba7592155b3f30c85645edb4
---

 libavcodec/eamad.c | 2 --
 1 file changed, 2 deletions(-)

diff --git a/libavcodec/eamad.c b/libavcodec/eamad.c
index 1c3f97653c..41a133c424 100644
--- a/libavcodec/eamad.c
+++ b/libavcodec/eamad.c
@@ -160,10 +160,8 @@ static inline int decode_block_intra(MadContext *s, int16_t * block)
                 LAST_SKIP_BITS(re, &s->gb, 1);
             } else {
                 /* escape */
-                UPDATE_CACHE(re, &s->gb);
                 level = SHOW_SBITS(re, &s->gb, 10); SKIP_BITS(re, &s->gb, 10);
 
-                UPDATE_CACHE(re, &s->gb);
                 run = SHOW_UBITS(re, &s->gb, 6)+1; LAST_SKIP_BITS(re, &s->gb, 6);
 
                 i += run;



More information about the ffmpeg-cvslog mailing list