This is an automated email from the git hooks/post-receive script.

Git pushed a commit to branch master
in repository ffmpeg.

commit 22771117a01fcd9177099c72fcd010e60f70d895
Author:     Ramiro Polla <[email protected]>
AuthorDate: Thu Oct 9 16:55:18 2025 +0200
Commit:     Ramiro Polla <[email protected]>
CommitDate: Fri Feb 20 16:32:10 2026 +0100

    avcodec/mjpegdec: move get_bits_left() checks after handling of restart 
count
    
    This commit doesn't really change much on its own, but it's helpful in
    preparation for the following commit.
---
 libavcodec/mjpegdec.c | 20 +++++++++++---------
 1 file changed, 11 insertions(+), 9 deletions(-)

diff --git a/libavcodec/mjpegdec.c b/libavcodec/mjpegdec.c
index 0d4c5cabd1..1cbeecd01c 100644
--- a/libavcodec/mjpegdec.c
+++ b/libavcodec/mjpegdec.c
@@ -1172,11 +1172,6 @@ static int ljpeg_decode_rgb_scan(MJpegDecodeContext *s)
         for (mb_x = 0; mb_x < width; mb_x++) {
             int modified_predictor = predictor;
 
-            if (get_bits_left(&s->gb) < 1) {
-                av_log(s->avctx, AV_LOG_ERROR, "bitstream end in rgb_scan\n");
-                return AVERROR_INVALIDDATA;
-            }
-
             if (s->restart_interval && !s->restart_count){
                 s->restart_count = s->restart_interval;
                 resync_mb_x = mb_x;
@@ -1184,6 +1179,12 @@ static int ljpeg_decode_rgb_scan(MJpegDecodeContext *s)
                 for(i=0; i<4; i++)
                     top[i] = left[i]= topleft[i]= 1 << (s->bits - 1);
             }
+
+            if (get_bits_left(&s->gb) < 1) {
+                av_log(s->avctx, AV_LOG_ERROR, "bitstream end in rgb_scan\n");
+                return AVERROR_INVALIDDATA;
+            }
+
             if (mb_y == resync_mb_y || mb_y == resync_mb_y+1 && mb_x < 
resync_mb_x || !mb_x)
                 modified_predictor = 1;
 
@@ -1300,16 +1301,17 @@ static int ljpeg_decode_yuv_scan(MJpegDecodeContext *s)
 
     for (mb_y = 0; mb_y < s->mb_height; mb_y++) {
         for (mb_x = 0; mb_x < s->mb_width; mb_x++) {
-            if (get_bits_left(&s->gb) < 1) {
-                av_log(s->avctx, AV_LOG_ERROR, "bitstream end in yuv_scan\n");
-                return AVERROR_INVALIDDATA;
-            }
             if (s->restart_interval && !s->restart_count){
                 s->restart_count = s->restart_interval;
                 resync_mb_x = mb_x;
                 resync_mb_y = mb_y;
             }
 
+            if (get_bits_left(&s->gb) < 1) {
+                av_log(s->avctx, AV_LOG_ERROR, "bitstream end in yuv_scan\n");
+                return AVERROR_INVALIDDATA;
+            }
+
             if(!mb_x || mb_y == resync_mb_y || mb_y == resync_mb_y+1 && mb_x < 
resync_mb_x || s->interlaced){
                 int toprow  = mb_y == resync_mb_y || mb_y == resync_mb_y+1 && 
mb_x < resync_mb_x;
                 int leftcol = !mb_x || mb_y == resync_mb_y && mb_x == 
resync_mb_x;

_______________________________________________
ffmpeg-cvslog mailing list -- [email protected]
To unsubscribe send an email to [email protected]

Reply via email to