From b6a01ec0933a169f204bb225091032b03d18e781 Mon Sep 17 00:00:00 2001
From: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
Date: Wed, 19 Mar 2025 01:26:18 +0100
Subject: [PATCH 62/77] avcodec/motion_est: Don't use MpegEncContext.avctx

Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
---
 libavcodec/motion_est.c          | 29 +++++++++++++++--------------
 libavcodec/motion_est_template.c |  2 +-
 2 files changed, 16 insertions(+), 15 deletions(-)

diff --git a/libavcodec/motion_est.c b/libavcodec/motion_est.c
index 88164de6a5..ffad3dbc79 100644
--- a/libavcodec/motion_est.c
+++ b/libavcodec/motion_est.c
@@ -372,7 +372,7 @@ void ff_me_init_pic(MpegEncContext *s)
     MotionEstContext * const c= &s->me;
 
 /*FIXME s->no_rounding b_type*/
-    if (s->avctx->flags & AV_CODEC_FLAG_QPEL) {
+    if (c->avctx->flags & AV_CODEC_FLAG_QPEL) {
         c->qpel_avg = s->qdsp.avg_qpel_pixels_tab;
         if (s->no_rounding)
             c->qpel_put = s->qdsp.put_no_rnd_qpel_pixels_tab;
@@ -984,7 +984,7 @@ void ff_estimate_p_frame_motion(MpegEncContext * s,
             mx *= 1 << shift;
             my *= 1 << shift;
         }
-        if ((s->avctx->flags & AV_CODEC_FLAG_4MV)
+        if ((c->avctx->flags & AV_CODEC_FLAG_4MV)
            && !c->skip && varc>50<<8 && vard>10<<8){
             if(h263_mv4_search(s, mx, my, shift) < INT_MAX)
                 mb_type|=CANDIDATE_MB_TYPE_INTER4V;
@@ -992,7 +992,7 @@ void ff_estimate_p_frame_motion(MpegEncContext * s,
             set_p_mv_tables(s, mx, my, 0);
         }else
             set_p_mv_tables(s, mx, my, 1);
-        if ((s->avctx->flags & AV_CODEC_FLAG_INTERLACED_ME)
+        if ((c->avctx->flags & AV_CODEC_FLAG_INTERLACED_ME)
            && !c->skip){ //FIXME varc/d checks
             if(interlaced_search(s, 0, s->p_field_mv_table, s->p_field_select_table, mx, my, 0) < INT_MAX)
                 mb_type |= CANDIDATE_MB_TYPE_INTER_I;
@@ -1005,7 +1005,7 @@ void ff_estimate_p_frame_motion(MpegEncContext * s,
         if(c->avctx->me_sub_cmp != c->avctx->mb_cmp && !c->skip)
             dmin= get_mb_score(s, mx, my, 0, 0, 0, 16, 1);
 
-        if ((s->avctx->flags & AV_CODEC_FLAG_4MV)
+        if ((c->avctx->flags & AV_CODEC_FLAG_4MV)
            && !c->skip && varc>50<<8 && vard>10<<8){
             int dmin4= h263_mv4_search(s, mx, my, shift);
             if(dmin4 < dmin){
@@ -1013,7 +1013,7 @@ void ff_estimate_p_frame_motion(MpegEncContext * s,
                 dmin=dmin4;
             }
         }
-        if ((s->avctx->flags & AV_CODEC_FLAG_INTERLACED_ME)
+        if ((c->avctx->flags & AV_CODEC_FLAG_INTERLACED_ME)
            && !c->skip){ //FIXME varc/d checks
             int dmin_i= interlaced_search(s, 0, s->p_field_mv_table, s->p_field_select_table, mx, my, 0);
             if(dmin_i < dmin){
@@ -1269,10 +1269,10 @@ static inline int bidir_refine(MpegEncContext * s, int mb_x, int mb_y)
                           pred_bx, pred_by,
                           0, 16);
 
-    if(s->avctx->bidir_refine){
+    if (c->avctx->bidir_refine) {
         int end;
         static const uint8_t limittab[5]={0,8,32,64,80};
-        const int limit= limittab[s->avctx->bidir_refine];
+        const int limit = limittab[c->avctx->bidir_refine];
         static const int8_t vect[][4]={
 { 0, 0, 0, 1}, { 0, 0, 0,-1}, { 0, 0, 1, 0}, { 0, 0,-1, 0}, { 0, 1, 0, 0}, { 0,-1, 0, 0}, { 1, 0, 0, 0}, {-1, 0, 0, 0},
 
@@ -1526,13 +1526,13 @@ void ff_estimate_b_frame_motion(MpegEncContext * s,
     c->skip=0;
     bmin = estimate_motion_b(s, mb_x, mb_y, s->b_back_mv_table, 2, s->b_code) +
            2 * c->mb_penalty_factor;
-    ff_dlog(s->avctx, " %d %d ", s->b_forw_mv_table[xy][0], s->b_forw_mv_table[xy][1]);
+    ff_dlog(c->avctx, " %d %d ", s->b_forw_mv_table[xy][0], s->b_forw_mv_table[xy][1]);
 
     c->skip=0;
     fbmin= bidir_refine(s, mb_x, mb_y) + c->mb_penalty_factor;
-    ff_dlog(s->avctx, "%d %d %d %d\n", dmin, fmin, bmin, fbmin);
+    ff_dlog(c->avctx, "%d %d %d %d\n", dmin, fmin, bmin, fbmin);
 
-    if (s->avctx->flags & AV_CODEC_FLAG_INTERLACED_ME) {
+    if (c->avctx->flags & AV_CODEC_FLAG_INTERLACED_ME) {
 //FIXME mb type penalty
         c->skip=0;
         c->current_mv_penalty= c->mv_penalty[s->f_code] + MAX_DMV;
@@ -1603,14 +1603,15 @@ int ff_get_best_fcode(MPVMainEncContext *const m, const int16_t (*mv_table)[2],
 
     if (c->motion_est != FF_ME_ZERO) {
         int score[8];
-        int i, y, range= s->avctx->me_range ? s->avctx->me_range : (INT_MAX/2);
+        int i, y, range = c->avctx->me_range ? c->avctx->me_range : (INT_MAX/2);
         const uint8_t * fcode_tab = m->fcode_tab;
         int best_fcode=-1;
         int best_score=-10000000;
 
         if (s->msmpeg4_version != MSMP4_UNUSED)
             range= FFMIN(range, 16);
-        else if(s->codec_id == AV_CODEC_ID_MPEG2VIDEO && s->avctx->strict_std_compliance >= FF_COMPLIANCE_NORMAL)
+        else if (s->codec_id == AV_CODEC_ID_MPEG2VIDEO &&
+                 c->avctx->strict_std_compliance >= FF_COMPLIANCE_NORMAL)
             range= FFMIN(range, 256);
 
         for(i=0; i<8; i++) score[i]= s->mb_num*(8-i);
@@ -1661,11 +1662,11 @@ void ff_fix_long_p_mvs(MpegEncContext * s, int type)
     range = (((s->out_format == FMT_MPEG1 || s->msmpeg4_version != MSMP4_UNUSED) ? 8 : 16) << f_code);
 
     av_assert0(range <= 16 || s->msmpeg4_version == MSMP4_UNUSED);
-    av_assert0(range <=256 || !(s->codec_id == AV_CODEC_ID_MPEG2VIDEO && s->avctx->strict_std_compliance >= FF_COMPLIANCE_NORMAL));
+    av_assert0(range <=256 || !(s->codec_id == AV_CODEC_ID_MPEG2VIDEO && c->avctx->strict_std_compliance >= FF_COMPLIANCE_NORMAL));
 
     if(c->avctx->me_range && range > c->avctx->me_range) range= c->avctx->me_range;
 
-    if (s->avctx->flags & AV_CODEC_FLAG_4MV) {
+    if (c->avctx->flags & AV_CODEC_FLAG_4MV) {
         const int wrap= s->b8_stride;
 
         /* clip / convert to intra 8x8 type MVs */
diff --git a/libavcodec/motion_est_template.c b/libavcodec/motion_est_template.c
index b2701aa32e..5498f9c982 100644
--- a/libavcodec/motion_est_template.c
+++ b/libavcodec/motion_est_template.c
@@ -906,7 +906,7 @@ static av_always_inline int epzs_motion_search_internal(MpegEncContext * s, int
         CHECK_CLIPPED_MV((last_mv[ref_mv_xy][0]*ref_mv_scale + (1<<15))>>16,
                         (last_mv[ref_mv_xy][1]*ref_mv_scale + (1<<15))>>16)
     }else{
-        if(dmin<((h*h*s->avctx->mv0_threshold)>>8)
+        if (dmin < ((h * h * c->avctx->mv0_threshold) >> 8)
                     && ( P_LEFT[0]    |P_LEFT[1]
                         |P_TOP[0]     |P_TOP[1]
                         |P_TOPRIGHT[0]|P_TOPRIGHT[1])==0){
-- 
2.45.2