diff options
author | Andreas Rheinhardt <andreas.rheinhardt@outlook.com> | 2022-12-07 15:15:42 +0100 |
---|---|---|
committer | Andreas Rheinhardt <andreas.rheinhardt@outlook.com> | 2022-12-10 21:15:27 +0100 |
commit | ec2d582cb02dc3b838b2ff9efe48a5fa2ee288dd (patch) | |
tree | a8a0ad0cc009f6b3756619ac82ae9e874b80a2cf /libavcodec | |
parent | b640cda95d82cec76d4e8441b2ce119415c213e7 (diff) |
avcodec/mjpegdec: Avoid checks whose results are known at compile-time
Namely the result of the check for smv_next_frame > 0 in
smv_process_frame().
Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
Diffstat (limited to 'libavcodec')
-rw-r--r-- | libavcodec/mjpegdec.c | 39 |
1 files changed, 18 insertions, 21 deletions
diff --git a/libavcodec/mjpegdec.c b/libavcodec/mjpegdec.c index cc8b9b7ebb..63151a68c9 100644 --- a/libavcodec/mjpegdec.c +++ b/libavcodec/mjpegdec.c @@ -2349,24 +2349,9 @@ static void reset_icc_profile(MJpegDecodeContext *s) // SMV JPEG just stacks several output frames into one JPEG picture // we handle that by setting up the cropping parameters appropriately -static int smv_process_frame(AVCodecContext *avctx, AVFrame *frame) +static void smv_process_frame(AVCodecContext *avctx, AVFrame *frame) { MJpegDecodeContext *s = avctx->priv_data; - int ret; - - if (s->smv_next_frame > 0) { - av_assert0(s->smv_frame->buf[0]); - av_frame_unref(frame); - ret = av_frame_ref(frame, s->smv_frame); - if (ret < 0) - return ret; - } else { - av_assert0(frame->buf[0]); - av_frame_unref(s->smv_frame); - ret = av_frame_ref(s->smv_frame, frame); - if (ret < 0) - return ret; - } av_assert0((s->smv_next_frame + 1) * avctx->height <= avctx->coded_height); @@ -2379,8 +2364,6 @@ static int smv_process_frame(AVCodecContext *avctx, AVFrame *frame) if (s->smv_next_frame == 0) av_frame_unref(s->smv_frame); - - return 0; } static int mjpeg_get_packet(AVCodecContext *avctx) @@ -3055,14 +3038,28 @@ static int smvjpeg_receive_frame(AVCodecContext *avctx, AVFrame *frame) MJpegDecodeContext *s = avctx->priv_data; int ret; - if (s->smv_next_frame > 0) - return smv_process_frame(avctx, frame); + if (s->smv_next_frame > 0) { + av_assert0(s->smv_frame->buf[0]); + ret = av_frame_ref(frame, s->smv_frame); + if (ret < 0) + return ret; + + smv_process_frame(avctx, frame); + return 0; + } ret = ff_mjpeg_receive_frame(avctx, frame); if (ret < 0) return ret; - return smv_process_frame(avctx, frame); + av_assert0(frame->buf[0]); + av_frame_unref(s->smv_frame); + ret = av_frame_ref(s->smv_frame, frame); + if (ret < 0) + return ret; + + smv_process_frame(avctx, frame); + return 0; } const FFCodec ff_smvjpeg_decoder = { |