From 63ac6c415235198a6ee77475f01eae2a60bc456a Mon Sep 17 00:00:00 2001 From: Andreas Rheinhardt Date: Thu, 17 Feb 2022 16:54:20 +0100 Subject: [PATCH 40/40] avcodec/mpegvideo_enc, motion_est: Pre-center fcode_tab Signed-off-by: Andreas Rheinhardt --- libavcodec/ituh263enc.c | 2 +- libavcodec/motion_est.c | 3 +-- libavcodec/mpeg12enc.c | 2 +- libavcodec/mpeg4videoenc.c | 2 +- libavcodec/mpegvideo_enc.c | 2 +- 5 files changed, 5 insertions(+), 6 deletions(-) diff --git a/libavcodec/ituh263enc.c b/libavcodec/ituh263enc.c index 5beb857a6e..188996a4d1 100644 --- a/libavcodec/ituh263enc.c +++ b/libavcodec/ituh263enc.c @@ -843,7 +843,7 @@ av_cold void ff_h263_encode_init(MpegEncContext *s) break; case AV_CODEC_ID_H263P: if(s->umvplus) - s->fcode_tab= umv_fcode_tab; + s->fcode_tab = umv_fcode_tab + MAX_MV; if(s->modified_quant){ s->min_qcoeff= -2047; s->max_qcoeff= 2047; diff --git a/libavcodec/motion_est.c b/libavcodec/motion_est.c index 46c4ca2dd9..4940da21f3 100644 --- a/libavcodec/motion_est.c +++ b/libavcodec/motion_est.c @@ -1619,8 +1619,7 @@ int ff_get_best_fcode(MpegEncContext * s, const int16_t (*mv_table)[2], int type if(s->mb_type[xy] & type){ int mx= mv_table[xy][0]; int my= mv_table[xy][1]; - int fcode= FFMAX(fcode_tab[mx + MAX_MV], - fcode_tab[my + MAX_MV]); + int fcode = FFMAX(fcode_tab[mx], fcode_tab[my]); int j; if (mx >= range || mx < -range || diff --git a/libavcodec/mpeg12enc.c b/libavcodec/mpeg12enc.c index ca51430fce..0586b8cfe2 100644 --- a/libavcodec/mpeg12enc.c +++ b/libavcodec/mpeg12enc.c @@ -1157,7 +1157,7 @@ av_cold void ff_mpeg1_encode_init(MpegEncContext *s) s->c_dc_scale_table = ff_mpeg12_dc_scale_table[s->intra_dc_precision]; s->me.mv_penalty = mv_penalty; - s->fcode_tab = fcode_tab; + s->fcode_tab = fcode_tab + MAX_MV; if (s->codec_id == AV_CODEC_ID_MPEG1VIDEO) { s->min_qcoeff = -255; s->max_qcoeff = 255; diff --git a/libavcodec/mpeg4videoenc.c b/libavcodec/mpeg4videoenc.c index 26f9b40ff7..6ce5bc4462 100644 --- a/libavcodec/mpeg4videoenc.c +++ b/libavcodec/mpeg4videoenc.c @@ -1290,7 +1290,7 @@ static av_cold int encode_init(AVCodecContext *avctx) ff_thread_once(&init_static_once, mpeg4_encode_init_static); - s->fcode_tab = fcode_tab; + s->fcode_tab = fcode_tab + MAX_MV; s->min_qcoeff = -2048; s->max_qcoeff = 2047; s->intra_ac_vlc_length = uni_mpeg4_intra_rl_len; diff --git a/libavcodec/mpegvideo_enc.c b/libavcodec/mpegvideo_enc.c index 4e4b4c1ba9..4aeefcaf8d 100644 --- a/libavcodec/mpegvideo_enc.c +++ b/libavcodec/mpegvideo_enc.c @@ -286,7 +286,7 @@ static void mpv_encode_defaults(MpegEncContext *s) ff_thread_once(&init_static_once, mpv_encode_init_static); - s->fcode_tab = default_fcode_tab; + s->fcode_tab = default_fcode_tab + MAX_MV; s->input_picture_number = 0; s->picture_in_gop_number = 0; -- 2.45.2