[FFmpeg-cvslog] avcodec/mpegvideo_enc: Move MJPEG init checks to mjpegenc.c

Andreas Rheinhardt git at videolan.org
Tue Jan 4 18:20:19 EET 2022


ffmpeg | branch: master | Andreas Rheinhardt <andreas.rheinhardt at outlook.com> | Tue Dec 21 23:14:29 2021 +0100| [4d39a4db68b564c359c0c561e456b75f755b901f] | committer: Andreas Rheinhardt

avcodec/mpegvideo_enc: Move MJPEG init checks to mjpegenc.c

Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt at outlook.com>

> http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=4d39a4db68b564c359c0c561e456b75f755b901f
---

 libavcodec/mjpegenc.c      | 10 ++++++++++
 libavcodec/mpegvideo_enc.c | 12 ------------
 2 files changed, 10 insertions(+), 12 deletions(-)

diff --git a/libavcodec/mjpegenc.c b/libavcodec/mjpegenc.c
index c4c45c885b..57f249f56e 100644
--- a/libavcodec/mjpegenc.c
+++ b/libavcodec/mjpegenc.c
@@ -276,6 +276,16 @@ av_cold int ff_mjpeg_encode_init(MpegEncContext *s)
 
     av_assert0(s->slice_context_count == 1);
 
+    if (s->codec_id == AV_CODEC_ID_AMV || (s->avctx->active_thread_type & FF_THREAD_SLICE))
+        s->huffman = 0;
+
+    if (s->mpv_flags & FF_MPV_FLAG_QP_RD) {
+        // Used to produce garbage with MJPEG.
+        av_log(s->avctx, AV_LOG_ERROR,
+               "QP RD is no longer compatible with MJPEG or AMV\n");
+        return AVERROR(EINVAL);
+    }
+
     /* The following check is automatically true for AMV,
      * but it doesn't hurt either. */
     ret = ff_mjpeg_encode_check_pix_fmt(s->avctx);
diff --git a/libavcodec/mpegvideo_enc.c b/libavcodec/mpegvideo_enc.c
index d2520368e1..7e45fd0ff3 100644
--- a/libavcodec/mpegvideo_enc.c
+++ b/libavcodec/mpegvideo_enc.c
@@ -370,9 +370,6 @@ av_cold int ff_mpv_encode_init(AVCodecContext *avctx)
         return AVERROR(EINVAL);
     }
 
-    if (avctx->codec_id == AV_CODEC_ID_AMV || (avctx->active_thread_type & FF_THREAD_SLICE))
-        s->huffman = 0;
-
     if (s->intra_dc_precision > (avctx->codec_id == AV_CODEC_ID_MPEG2VIDEO ? 3 : 0)) {
         av_log(avctx, AV_LOG_ERROR, "intra dc precision too large\n");
         return AVERROR(EINVAL);
@@ -573,15 +570,6 @@ av_cold int ff_mpv_encode_init(AVCodecContext *avctx)
         return AVERROR(EINVAL);
     }
 
-    if ((s->mpv_flags & FF_MPV_FLAG_QP_RD) &&
-            (s->codec_id == AV_CODEC_ID_AMV ||
-             s->codec_id == AV_CODEC_ID_MJPEG)) {
-        // Used to produce garbage with MJPEG.
-        av_log(avctx, AV_LOG_ERROR,
-               "QP RD is no longer compatible with MJPEG or AMV\n");
-        return AVERROR(EINVAL);
-    }
-
     if (s->scenechange_threshold < 1000000000 &&
         (avctx->flags & AV_CODEC_FLAG_CLOSED_GOP)) {
         av_log(avctx, AV_LOG_ERROR,



More information about the ffmpeg-cvslog mailing list