aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAndreas Rheinhardt <andreas.rheinhardt@outlook.com>2024-04-18 23:13:58 +0200
committerAndreas Rheinhardt <andreas.rheinhardt@outlook.com>2024-06-12 11:54:47 +0200
commitd0f76e6a11a17f211584aa56dba0e3f785c97f2e (patch)
treea74826cd292b88296e9138b8bda1551a8217afd4
parent12fcbff446649fe7c2fd5aafd2d4e78c9b3b56a3 (diff)
downloadffmpeg-d0f76e6a11a17f211584aa56dba0e3f785c97f2e.tar.gz
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.rheinhardt@outlook.com>
-rw-r--r--libavcodec/mpegpicture.c1
-rw-r--r--libavcodec/mpegpicture.h6
-rw-r--r--libavcodec/mpegvideo.c1
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;