]> git.sesse.net Git - ffmpeg/blobdiff - libavcodec/ac3dec.c
avformat/dump: Remove remnants of codec timebase
[ffmpeg] / libavcodec / ac3dec.c
index 3e4bec56b1ca55d45ed2ec8a0e280608069dd7e1..c7deb56e1c61c5bfe2b98a685cca26c4d393439e 100644 (file)
@@ -33,6 +33,7 @@
 #include "libavutil/crc.h"
 #include "libavutil/downmix_info.h"
 #include "libavutil/opt.h"
+#include "libavutil/thread.h"
 #include "bswapdsp.h"
 #include "internal.h"
 #include "aac_ac3_parser.h"
@@ -183,12 +184,12 @@ static av_cold void ac3_tables_init(void)
  */
 static av_cold int ac3_decode_init(AVCodecContext *avctx)
 {
+    static AVOnce init_static_once = AV_ONCE_INIT;
     AC3DecodeContext *s = avctx->priv_data;
     int i, ret;
 
     s->avctx = avctx;
 
-    ac3_tables_init();
     if ((ret = ff_mdct_init(&s->imdct_256, 8, 1, 1.0)) < 0 ||
         (ret = ff_mdct_init(&s->imdct_512, 9, 1, 1.0)) < 0)
         return ret;
@@ -226,6 +227,8 @@ static av_cold int ac3_decode_init(AVCodecContext *avctx)
         s->dlyptr[i] = s->delay[i];
     }
 
+    ff_thread_once(&init_static_once, ac3_tables_init);
+
     return 0;
 }