summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndreas Rheinhardt <andreas.rheinhardt@outlook.com>2022-12-07 19:06:57 +0100
committerAndreas Rheinhardt <andreas.rheinhardt@outlook.com>2022-12-10 21:15:27 +0100
commit07e0732a9a0f3482df20915f0ae92077f6e600ca (patch)
treeb720846cd48fd256acca7c58f772b38e928e9ff3
parent05086a6c936c360a43db38b11b5074fb0cb65211 (diff)
downloadffmpeg-07e0732a9a0f3482df20915f0ae92077f6e600ca.tar.gz
avcodec/mjpegdec: Move smv_process_frame() to other SMV stuff
Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
-rw-r--r--libavcodec/mjpegdec.c38
1 files changed, 19 insertions, 19 deletions
diff --git a/libavcodec/mjpegdec.c b/libavcodec/mjpegdec.c
index 908025b189..f33911e1a8 100644
--- a/libavcodec/mjpegdec.c
+++ b/libavcodec/mjpegdec.c
@@ -2345,25 +2345,6 @@ static void reset_icc_profile(MJpegDecodeContext *s)
s->iccnum = 0;
}
-// SMV JPEG just stacks several output frames into one JPEG picture
-// we handle that by setting up the cropping parameters appropriately
-static void smv_process_frame(AVCodecContext *avctx, AVFrame *frame)
-{
- MJpegDecodeContext *s = avctx->priv_data;
-
- av_assert0((s->smv_next_frame + 1) * avctx->height <= avctx->coded_height);
-
- frame->width = avctx->coded_width;
- frame->height = avctx->coded_height;
- frame->crop_top = FFMIN(s->smv_next_frame * avctx->height, frame->height);
- frame->crop_bottom = frame->height - (s->smv_next_frame + 1) * avctx->height;
-
- s->smv_next_frame = (s->smv_next_frame + 1) % s->smv_frames_per_jpeg;
-
- if (s->smv_next_frame == 0)
- av_frame_unref(s->smv_frame);
-}
-
int ff_mjpeg_decode_frame_from_buf(AVCodecContext *avctx, AVFrame *frame,
int *got_frame, const AVPacket *avpkt,
const uint8_t *buf, const int buf_size)
@@ -3009,6 +2990,25 @@ const FFCodec ff_thp_decoder = {
#endif
#if CONFIG_SMVJPEG_DECODER
+// SMV JPEG just stacks several output frames into one JPEG picture
+// we handle that by setting up the cropping parameters appropriately
+static void smv_process_frame(AVCodecContext *avctx, AVFrame *frame)
+{
+ MJpegDecodeContext *s = avctx->priv_data;
+
+ av_assert0((s->smv_next_frame + 1) * avctx->height <= avctx->coded_height);
+
+ frame->width = avctx->coded_width;
+ frame->height = avctx->coded_height;
+ frame->crop_top = FFMIN(s->smv_next_frame * avctx->height, frame->height);
+ frame->crop_bottom = frame->height - (s->smv_next_frame + 1) * avctx->height;
+
+ s->smv_next_frame = (s->smv_next_frame + 1) % s->smv_frames_per_jpeg;
+
+ if (s->smv_next_frame == 0)
+ av_frame_unref(s->smv_frame);
+}
+
static int smvjpeg_receive_frame(AVCodecContext *avctx, AVFrame *frame)
{
MJpegDecodeContext *s = avctx->priv_data;