ffmpeg | branch: master | Andreas Rheinhardt <andreas.rheinha...@outlook.com> | 
Thu Feb 17 16:54:20 2022 +0100| [85138c1434db29e792db7deb63530f72a69d4452] | 
committer: Andreas Rheinhardt

avcodec/mpegvideo_enc, motion_est: Pre-center fcode_tab

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

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

 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;

_______________________________________________
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