ffmpeg | branch: master | Andreas Rheinhardt <andreas.rheinha...@outlook.com> | 
Thu Apr 18 23:13:58 2024 +0200| [d0f76e6a11a17f211584aa56dba0e3f785c97f2e] | 
committer: Andreas Rheinhardt

avcodec/mpegpicture: Use union for b_scratchpad and rd_scratchpad

These pointers point to the same buffers, so one can just
use a union for them and avoid synchronising one of them.

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

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

 libavcodec/mpegpicture.c | 1 -
 libavcodec/mpegpicture.h | 6 ++++--
 libavcodec/mpegvideo.c   | 1 -
 3 files changed, 4 insertions(+), 4 deletions(-)

diff --git a/libavcodec/mpegpicture.c b/libavcodec/mpegpicture.c
index 9308fce97c..43d35934c8 100644
--- a/libavcodec/mpegpicture.c
+++ b/libavcodec/mpegpicture.c
@@ -175,7 +175,6 @@ int ff_mpeg_framesize_alloc(AVCodecContext *avctx, 
MotionEstContext *me,
     sc->linesize = linesizeabs;
 
     me->temp            = me->scratchpad;
-    sc->rd_scratchpad   = me->scratchpad;
     sc->b_scratchpad    = me->scratchpad;
     sc->obmc_scratchpad = me->scratchpad + 16;
 
diff --git a/libavcodec/mpegpicture.h b/libavcodec/mpegpicture.h
index f9633e11db..ddb3ac5a2b 100644
--- a/libavcodec/mpegpicture.h
+++ b/libavcodec/mpegpicture.h
@@ -33,9 +33,11 @@
 
 typedef struct ScratchpadContext {
     uint8_t *edge_emu_buffer;     ///< temporary buffer for if MVs point to 
out-of-frame data
-    uint8_t *rd_scratchpad;       ///< scratchpad for rate distortion mb 
decision
     uint8_t *obmc_scratchpad;
-    uint8_t *b_scratchpad;        ///< scratchpad used for writing into write 
only buffers
+    union {
+        uint8_t *b_scratchpad;    ///< scratchpad used for writing into write 
only buffers
+        uint8_t *rd_scratchpad;   ///< scratchpad for rate distortion mb 
decision
+    };
     int      linesize;            ///< linesize that the buffers in this 
context have been allocated for
 } ScratchpadContext;
 
diff --git a/libavcodec/mpegvideo.c b/libavcodec/mpegvideo.c
index 42b4d7f395..36947c6e31 100644
--- a/libavcodec/mpegvideo.c
+++ b/libavcodec/mpegvideo.c
@@ -440,7 +440,6 @@ static void free_duplicate_context(MpegEncContext *s)
     av_freep(&s->sc.edge_emu_buffer);
     av_freep(&s->me.scratchpad);
     s->me.temp =
-    s->sc.rd_scratchpad =
     s->sc.b_scratchpad =
     s->sc.obmc_scratchpad = NULL;
     s->sc.linesize = 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