[FFmpeg-devel] [PATCH] avcodec/mjpegbdec: return the amount of bytes consumed when discarding frames

James Almer jamrial at gmail.com
Mon Dec 26 13:33:52 EET 2022


EAGAIN is not correct in this scenario. FFCodec.cb.decode() callback decoders
always return the amount of bytes consumed from the input packet (if any), and
report if a frame was generated by setting got_frame.

Signed-off-by: James Almer <jamrial at gmail.com>
---
 libavcodec/mjpegbdec.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/libavcodec/mjpegbdec.c b/libavcodec/mjpegbdec.c
index a82a95d70a..6d422e7a29 100644
--- a/libavcodec/mjpegbdec.c
+++ b/libavcodec/mjpegbdec.c
@@ -144,7 +144,7 @@ read_header:
     av_frame_move_ref(rframe, s->picture_ptr);
     s->got_picture = 0;
     if (avctx->skip_frame == AVDISCARD_ALL)
-        return AVERROR(EAGAIN);
+        return buf_size;
     *got_frame = 1;
 
     if (!s->lossless && avctx->debug & FF_DEBUG_QP) {
-- 
2.38.1



More information about the ffmpeg-devel mailing list