From 9901b63fc2ad7b09e9c9cd5a4776f07026ab08a2 Mon Sep 17 00:00:00 2001
From: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
Date: Tue, 25 Mar 2025 16:03:38 +0100
Subject: [PATCH 03/11] avcodec/mpegvideo_enc: Pass data_partitioning directly

This avoids having to store it in the backup MPVEncContext.

Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
---
 libavcodec/mpegvideo_enc.c | 11 +++++------
 1 file changed, 5 insertions(+), 6 deletions(-)

diff --git a/libavcodec/mpegvideo_enc.c b/libavcodec/mpegvideo_enc.c
index ea3bc4ee55..16086bf067 100644
--- a/libavcodec/mpegvideo_enc.c
+++ b/libavcodec/mpegvideo_enc.c
@@ -2659,7 +2659,8 @@ static inline void copy_context_before_encode(MPVEncContext *const d,
 }
 
 static inline void copy_context_after_encode(MPVEncContext *const d,
-                                             const MPVEncContext *const s)
+                                             const MPVEncContext *const s,
+                                             int data_partitioning)
 {
     int i;
 
@@ -2683,7 +2684,7 @@ static inline void copy_context_after_encode(MPVEncContext *const d,
     d->c.mv_type    = s->c.mv_type;
     d->c.mv_dir     = s->c.mv_dir;
     d->pb= s->pb;
-    if (s->c.data_partitioning) {
+    if (data_partitioning) {
         d->pb2= s->pb2;
         d->tex_pb= s->tex_pb;
     }
@@ -2743,7 +2744,7 @@ static void encode_mb_hq(MPVEncContext *const s, MPVEncContext *const backup, MP
         *dmin= score;
         *next_block^=1;
 
-        copy_context_after_encode(best, s);
+        copy_context_after_encode(best, s, s->c.data_partitioning);
     }
 }
 
@@ -3164,8 +3165,6 @@ static int encode_thread(AVCodecContext *c, void *arg){
 
                 copy_context_before_encode(&backup_s, s);
                 backup_s.pb= s->pb;
-                best_s.c.data_partitioning = s->c.data_partitioning;
-                best_s.c.partitioned_frame = s->c.partitioned_frame;
                 if (s->c.data_partitioning) {
                     backup_s.pb2= s->pb2;
                     backup_s.tex_pb= s->tex_pb;
@@ -3389,7 +3388,7 @@ static int encode_thread(AVCodecContext *c, void *arg){
                     }
                 }
 
-                copy_context_after_encode(s, &best_s);
+                copy_context_after_encode(s, &best_s, s->c.data_partitioning);
 
                 pb_bits_count= put_bits_count(&s->pb);
                 flush_put_bits(&s->pb);
-- 
2.45.2