[FFmpeg-devel] [PATCH v2 47/69] avcodec/mpegvideo_enc: Initialize non-JPEG q-matrices only once
Andreas Rheinhardt
andreas.rheinhardt at outlook.com
Tue Feb 1 15:06:44 EET 2022
Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt at outlook.com>
---
libavcodec/mpegvideo_enc.c | 11 ++++-------
1 file changed, 4 insertions(+), 7 deletions(-)
diff --git a/libavcodec/mpegvideo_enc.c b/libavcodec/mpegvideo_enc.c
index 8b2de4770b..75f1db2a76 100644
--- a/libavcodec/mpegvideo_enc.c
+++ b/libavcodec/mpegvideo_enc.c
@@ -947,6 +947,10 @@ av_cold int ff_mpv_encode_init(AVCodecContext *avctx)
ff_convert_matrix(s, s->q_inter_matrix, s->q_inter_matrix16,
s->inter_matrix, s->inter_quant_bias, avctx->qmin,
31, 0);
+ av_freep(&s->q_chroma_intra_matrix);
+ av_freep(&s->q_chroma_intra_matrix16);
+ s->q_chroma_intra_matrix = s->q_intra_matrix;
+ s->q_chroma_intra_matrix16 = s->q_intra_matrix16;
}
if ((ret = ff_rate_control_init(m)) < 0)
@@ -3599,13 +3603,6 @@ static int encode_picture(MPVMainEncContext *m, int picture_number)
update_qscale(s);
}
- if (s->out_format != FMT_MJPEG) {
- if(s->q_chroma_intra_matrix != s->q_intra_matrix ) av_freep(&s->q_chroma_intra_matrix);
- if(s->q_chroma_intra_matrix16 != s->q_intra_matrix16) av_freep(&s->q_chroma_intra_matrix16);
- s->q_chroma_intra_matrix = s->q_intra_matrix;
- s->q_chroma_intra_matrix16 = s->q_intra_matrix16;
- }
-
s->mb_intra=0; //for the rate distortion & bit compare functions
for(i=1; i<context_count; i++){
ret = ff_update_duplicate_context(s->thread_context[i], s);
--
2.32.0
More information about the ffmpeg-devel
mailing list