ffmpeg | branch: master | Andreas Rheinhardt <andreas.rheinha...@outlook.com> | 
Thu Feb 27 22:56:59 2025 +0100| [0c4b091bd6bbb8ea44ff8a002cb02e20b3ee809d] | 
committer: Andreas Rheinhardt

avcodec/mpegvideo_enc: Move q_matrix init to init_matrices()

Signed-off-by: Andreas Rheinhardt <andreas.rheinha...@outlook.com>

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

 libavcodec/mpegvideo_enc.c | 30 ++++++++++++++----------------
 1 file changed, 14 insertions(+), 16 deletions(-)

diff --git a/libavcodec/mpegvideo_enc.c b/libavcodec/mpegvideo_enc.c
index 81e004d1a8..5eea676dd4 100644
--- a/libavcodec/mpegvideo_enc.c
+++ b/libavcodec/mpegvideo_enc.c
@@ -353,6 +353,7 @@ static av_cold int init_matrices(MpegEncContext *s, 
AVCodecContext *avctx)
 {
     const int nb_matrices = 1 + (s->out_format == FMT_MJPEG) + !s->intra_only;
     const uint16_t *intra_matrix, *inter_matrix;
+    int ret;
 
     if (!ALLOCZ_ARRAYS(s->q_intra_matrix,   32, nb_matrices) ||
         !ALLOCZ_ARRAYS(s->q_intra_matrix16, 32, nb_matrices))
@@ -399,6 +400,19 @@ static av_cold int init_matrices(MpegEncContext *s, 
AVCodecContext *avctx)
         s->inter_matrix[j] = inter_matrix[i];
     }
 
+    /* precompute matrix */
+    ret = ff_check_codec_matrices(avctx, FF_MATRIX_TYPE_INTRA | 
FF_MATRIX_TYPE_INTER, 1, 255);
+    if (ret < 0)
+        return ret;
+
+    ff_convert_matrix(s, s->q_intra_matrix, s->q_intra_matrix16,
+                      s->intra_matrix, s->intra_quant_bias, avctx->qmin,
+                      31, 1);
+    if (s->q_inter_matrix)
+        ff_convert_matrix(s, s->q_inter_matrix, s->q_inter_matrix16,
+                          s->inter_matrix, s->inter_quant_bias, avctx->qmin,
+                          31, 0);
+
     return 0;
 }
 
@@ -1017,22 +1031,6 @@ av_cold int ff_mpv_encode_init(AVCodecContext *avctx)
 #endif
     }
 
-    /* precompute matrix */
-    /* for mjpeg, we do include qscale in the matrix */
-    if (s->out_format != FMT_MJPEG) {
-        ret = ff_check_codec_matrices(avctx, FF_MATRIX_TYPE_INTRA | 
FF_MATRIX_TYPE_INTER, 1, 255);
-        if (ret < 0)
-            return ret;
-
-        ff_convert_matrix(s, s->q_intra_matrix, s->q_intra_matrix16,
-                          s->intra_matrix, s->intra_quant_bias, avctx->qmin,
-                          31, 1);
-        if (s->q_inter_matrix)
-        ff_convert_matrix(s, s->q_inter_matrix, s->q_inter_matrix16,
-                          s->inter_matrix, s->inter_quant_bias, avctx->qmin,
-                          31, 0);
-    }
-
     if ((ret = ff_rate_control_init(s)) < 0)
         return ret;
 

_______________________________________________
ffmpeg-cvslog mailing list
ffmpeg-cvslog@ffmpeg.org
https://ffmpeg.org/mailman/listinfo/ffmpeg-cvslog

To unsubscribe, visit link above, or email
ffmpeg-cvslog-requ...@ffmpeg.org with subject "unsubscribe".

Reply via email to