From 8875c0889693031f548cdba1e8575ac05e5e7b4c Mon Sep 17 00:00:00 2001 From: Andreas Rheinhardt Date: Tue, 25 Feb 2025 20:56:57 +0100 Subject: [PATCH 28/30] avcodec/mpegvideo_enc: Don't do unnecessary work for AMV Up until now, the initialization of AMV's matrices happened after the initialization for MJPEG matrices, overwriting the earlier data. This commit changes this. Signed-off-by: Andreas Rheinhardt --- libavcodec/mpegvideo_enc.c | 11 +++-------- 1 file changed, 3 insertions(+), 8 deletions(-) diff --git a/libavcodec/mpegvideo_enc.c b/libavcodec/mpegvideo_enc.c index 87e02fa534..2bc853620b 100644 --- a/libavcodec/mpegvideo_enc.c +++ b/libavcodec/mpegvideo_enc.c @@ -3838,6 +3838,7 @@ static int encode_picture(MpegEncContext *s, const AVPacket *pkt) if (ret < 0) return ret; + if (s->codec_id != AV_CODEC_ID_AMV) { if (s->avctx->intra_matrix) { chroma_matrix = luma_matrix = s->avctx->intra_matrix; @@ -3856,13 +3857,7 @@ static int encode_picture(MpegEncContext *s, const AVPacket *pkt) s->c_dc_scale_table = ff_mpeg12_dc_scale_table[s->intra_dc_precision]; s->chroma_intra_matrix[0] = s->intra_matrix[0] = ff_mpeg12_dc_scale_table[s->intra_dc_precision][8]; - ff_convert_matrix(s, s->q_intra_matrix, s->q_intra_matrix16, - s->intra_matrix, s->intra_quant_bias, 8, 8, 1); - ff_convert_matrix(s, s->q_chroma_intra_matrix, s->q_chroma_intra_matrix16, - s->chroma_intra_matrix, s->intra_quant_bias, 8, 8, 1); - s->qscale= 8; - - if (s->codec_id == AV_CODEC_ID_AMV) { + } else { static const uint8_t y[32] = {13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13}; static const uint8_t c[32] = {14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14}; for (int i = 1; i < 64; i++) { @@ -3875,12 +3870,12 @@ static int encode_picture(MpegEncContext *s, const AVPacket *pkt) s->c_dc_scale_table = c; s->intra_matrix[0] = 13; s->chroma_intra_matrix[0] = 14; + } ff_convert_matrix(s, s->q_intra_matrix, s->q_intra_matrix16, s->intra_matrix, s->intra_quant_bias, 8, 8, 1); ff_convert_matrix(s, s->q_chroma_intra_matrix, s->q_chroma_intra_matrix16, s->chroma_intra_matrix, s->intra_quant_bias, 8, 8, 1); s->qscale = 8; - } } if (s->pict_type == AV_PICTURE_TYPE_I) { -- 2.45.2