From 7e7baf8ab86c4ae715f12d2c0babf831a5b18c39 Mon Sep 17 00:00:00 2001 From: Lynne Date: Thu, 22 Sep 2022 08:25:52 +0200 Subject: [PATCH] lavu/tx: do not steal lookup tables of subcontexts in the iMDCT As it happens, some still need their contexts. --- libavutil/tx_template.c | 15 +++++++-------- 1 file changed, 7 insertions(+), 8 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 */ - if (s->sub[0].flags & FF_TX_PRESHUFFLE) { - s->map = s->sub[0].map; - s->sub[0].map = NULL; - } else { - s->map = av_malloc((len >> 1)*sizeof(*s->map)); - if (!s->map) - return AVERROR(ENOMEM); + 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) { + memcpy(s->map, s->sub->map, (len >> 1)*sizeof(*s->map)); + } else { for (int i = 0; i < len >> 1; i++) s->map[i] = i; }