diff mbox

[FFmpeg-devel,mpegaudio] Use ff_thread_once for fixed, float table init.

Message ID CAPUDrwcMnOk--tJZ_p=_n8e8VEdOgBkXX-a5h=2VLuQ5+SgRHw@mail.gmail.com
State New
Headers show

Commit Message

Dale Curtis Nov. 17, 2017, 10:52 p.m. UTC
These tables are static so they should only be initialized once
instead of on every call to ff_mpadsp_init().

Signed-off-by: Dale Curtis <dalecurtis@chromium.org>

Comments

Michael Niedermayer Nov. 18, 2017, 10:50 a.m. UTC | #1
On Fri, Nov 17, 2017 at 02:52:30PM -0800, Dale Curtis wrote:
> These tables are static so they should only be initialized once
> instead of on every call to ff_mpadsp_init().
> 
> Signed-off-by: Dale Curtis <dalecurtis@chromium.org>

>  mpegaudiodsp.c |    8 ++++++--
>  1 file changed, 6 insertions(+), 2 deletions(-)
> 9709276718a21c3995476e37d18279152b760adf  once_table_init_v1.patch
> From 70ffbeb41f0432c72701f6147385e9aa47bf8419 Mon Sep 17 00:00:00 2001
> From: Dale Curtis <dalecurtis@chromium.org>
> Date: Fri, 17 Nov 2017 14:51:09 -0800
> Subject: [PATCH] [mpegaudio] Use ff_thread_once for fixed, float table init.
> 
> These tables are static so they should only be initialized once
> instead of on every call to ff_mpadsp_init().
> 
> Signed-off-by: Dale Curtis <dalecurtis@chromium.org>
> ---
>  libavcodec/mpegaudiodsp.c | 8 ++++++--
>  1 file changed, 6 insertions(+), 2 deletions(-)

will apply

thanks

[...]
diff mbox

Patch

From 70ffbeb41f0432c72701f6147385e9aa47bf8419 Mon Sep 17 00:00:00 2001
From: Dale Curtis <dalecurtis@chromium.org>
Date: Fri, 17 Nov 2017 14:51:09 -0800
Subject: [PATCH] [mpegaudio] Use ff_thread_once for fixed, float table init.

These tables are static so they should only be initialized once
instead of on every call to ff_mpadsp_init().

Signed-off-by: Dale Curtis <dalecurtis@chromium.org>
---
 libavcodec/mpegaudiodsp.c | 8 ++++++--
 1 file changed, 6 insertions(+), 2 deletions(-)

diff --git a/libavcodec/mpegaudiodsp.c b/libavcodec/mpegaudiodsp.c
index a5d20df629..3cafca27bf 100644
--- a/libavcodec/mpegaudiodsp.c
+++ b/libavcodec/mpegaudiodsp.c
@@ -20,17 +20,21 @@ 
 
 #include "config.h"
 #include "libavutil/attributes.h"
+#include "libavutil/thread.h"
 #include "mpegaudiodsp.h"
 #include "dct.h"
 #include "dct32.h"
 
+static AVOnce mpadsp_float_table_init = AV_ONCE_INIT;
+static AVOnce mpadsp_fixed_table_init = AV_ONCE_INIT;
+
 av_cold void ff_mpadsp_init(MPADSPContext *s)
 {
     DCTContext dct;
 
     ff_dct_init(&dct, 5, DCT_II);
-    ff_init_mpadsp_tabs_float();
-    ff_init_mpadsp_tabs_fixed();
+    ff_thread_once(&mpadsp_float_table_init, &ff_init_mpadsp_tabs_float);
+    ff_thread_once(&mpadsp_fixed_table_init, &ff_init_mpadsp_tabs_fixed);
 
     s->apply_window_float = ff_mpadsp_apply_window_float;
     s->apply_window_fixed = ff_mpadsp_apply_window_fixed;
-- 
2.15.0.448.gf294e3d99a-goog