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]
