[FFmpeg-cvslog] lavu/tx: do not steal lookup tables of subcontexts in the iMDCT

Lynne git at videolan.org
Fri Sep 23 13:42:08 EEST 2022


ffmpeg | branch: master | Lynne <dev at lynne.ee> | Thu Sep 22 08:25:52 2022 +0200| [7e7baf8ab86c4ae715f12d2c0babf831a5b18c39] | committer: Lynne

lavu/tx: do not steal lookup tables of subcontexts in the iMDCT

As it happens, some still need their contexts.

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

 libavutil/tx_template.c | 13 ++++++-------
 1 file changed, 6 insertions(+), 7 deletions(-)

diff --git a/libavutil/tx_template.c b/libavutil/tx_template.c
index 5e7159bd87..2c9682ffb7 100644
--- a/libavutil/tx_template.c
+++ b/libavutil/tx_template.c
@@ -965,15 +965,14 @@ static av_cold int TX_NAME(ff_tx_mdct_init)(AVTXContext *s,
             return ret;
     }
 
-    /* If we need to preshuffle just steal the map from the subcontext */
+    s->map = av_malloc((len >> 1)*sizeof(*s->map));
+    if (!s->map)
+        return AVERROR(ENOMEM);
+
+    /* If we need to preshuffle copy the map from the subcontext */
     if (s->sub[0].flags & FF_TX_PRESHUFFLE) {
-        s->map = s->sub[0].map;
-        s->sub[0].map = NULL;
+        memcpy(s->map, s->sub->map, (len >> 1)*sizeof(*s->map));
     } else {
-        s->map = av_malloc((len >> 1)*sizeof(*s->map));
-        if (!s->map)
-            return AVERROR(ENOMEM);
-
         for (int i = 0; i < len >> 1; i++)
             s->map[i] = i;
     }



More information about the ffmpeg-cvslog mailing list