You've already forked FFmpeg
mirror of
https://github.com/FFmpeg/FFmpeg.git
synced 2025-08-15 14:13:16 +02:00
avcodec/mjpegdec: fix SOF check in EOI
For frames decoded with skip_frame == AVDISCARD_ALL, a picture is not allocated and got_picture is never set to 1 even if a SOF and SOS were parsed. The existing check in EOI only cares if a SOF was parsed, not if a picture allocated, so change it and add a new check to explicitly ensure a picture was allocated when skip_frame != AVDISCARD_ALL. Fixes probing and decoding when skip_frame is AVDISCARD_ALL. Signed-off-by: James Almer <jamrial@gmail.com>
This commit is contained in:
@@ -2560,11 +2560,16 @@ eoi_parser:
|
||||
s->progressive && s->cur_scan && s->got_picture)
|
||||
mjpeg_idct_scan_progressive_ac(s);
|
||||
s->cur_scan = 0;
|
||||
if (!s->got_picture) {
|
||||
if (!s->seen_sof) {
|
||||
av_log(avctx, AV_LOG_WARNING,
|
||||
"Found EOI before any SOF, ignoring\n");
|
||||
break;
|
||||
}
|
||||
if (!s->got_picture && avctx->skip_frame != AVDISCARD_ALL) {
|
||||
av_log(avctx, AV_LOG_WARNING,
|
||||
"Found EOI before any SOS, ignoring\n");
|
||||
break;
|
||||
}
|
||||
if (s->interlaced) {
|
||||
s->bottom_field ^= 1;
|
||||
/* if not bottom field, do not output image yet */
|
||||
|
Reference in New Issue
Block a user