aac: temporarily un-share aac_table_init AVOnce variable
authorRostislav Pehlivanov <atomnuker@gmail.com>
Fri, 27 Nov 2015 17:51:42 +0000 (17:51 +0000)
committerRostislav Pehlivanov <atomnuker@gmail.com>
Fri, 27 Nov 2015 17:51:42 +0000 (17:51 +0000)
AAC-Fixed decoder segfaulted. This commit makes the aac encoder
and decoder init the table twice in case of transcoding again.

Signed-off-by: Rostislav Pehlivanov <atomnuker@gmail.com>
libavcodec/aacdec_template.c
libavcodec/aacenc.c
libavcodec/aactab.c
libavcodec/aactab.h

index 82f4fb4..620600c 100644 (file)
@@ -1103,6 +1103,8 @@ static av_cold void aac_static_table_init(void)
     AAC_RENAME(cbrt_tableinit)();
 }
 
+static AVOnce aac_table_init = AV_ONCE_INIT;
+
 static av_cold int aac_decode_init(AVCodecContext *avctx)
 {
     AACContext *ac = avctx->priv_data;
index d6cac47..e49cf4b 100644 (file)
@@ -29,6 +29,7 @@
  * add sane pulse detection
  ***********************************/
 
+#include "libavutil/thread.h"
 #include "libavutil/float_dsp.h"
 #include "libavutil/opt.h"
 #include "avcodec.h"
@@ -46,6 +47,8 @@
 
 #include "psymodel.h"
 
+static AVOnce aac_table_init = AV_ONCE_INIT;
+
 /**
  * Make AAC audio config object.
  * @see 1.6.2.1 "Syntax - AudioSpecificConfig"
index c6e797e..dc9acc1 100644 (file)
  * @author Maxim Gavrilov ( maxim.gavrilov gmail com )
  */
 
-#include "libavutil/thread.h"
 #include "libavutil/mem.h"
 #include "aac.h"
 #include "aac_tablegen.h"
 
 #include <stdint.h>
 
-AVOnce aac_table_init = AV_ONCE_INIT;
-
 DECLARE_ALIGNED(32, float,  ff_aac_kbd_long_1024)[1024];
 DECLARE_ALIGNED(32, float,  ff_aac_kbd_short_128)[128];
 DECLARE_ALIGNED(32, int,    ff_aac_kbd_long_1024_fixed)[1024];
index e7d5d48..321c5d3 100644 (file)
@@ -30,7 +30,6 @@
 #ifndef AVCODEC_AACTAB_H
 #define AVCODEC_AACTAB_H
 
-#include "libavutil/thread.h"
 #include "libavutil/mem.h"
 #include "aac.h"
 #include "aac_tablegen_decl.h"
@@ -41,8 +40,6 @@
  * Tables in this file are shared by the AAC decoders and encoder
  */
 
-extern AVOnce aac_table_init; /* Protects ff_aac_tableinit() */
-
 /* @name ltp_coef
  * Table of the LTP coefficients
  */