From 772df653566d2d3f69f6e84da8b884ff110253c7 Mon Sep 17 00:00:00 2001 From: Andreas Rheinhardt Date: Tue, 25 Feb 2025 20:56:57 +0100 Subject: [PATCH] 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 c5c2e0b8e3..0c20fd6953 100644 --- a/libavcodec/mpegvideo_enc.c +++ b/libavcodec/mpegvideo_enc.c @@ -3839,6 +3839,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; @@ -3857,13 +3858,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++) { @@ -3876,12 +3871,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) {