mirror of
https://github.com/FFmpeg/FFmpeg.git
synced 2025-03-17 20:17:55 +02:00
aac: temporarily un-share aac_table_init AVOnce variable
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>
This commit is contained in:
parent
591fbd629e
commit
ec0719264c
@ -1103,6 +1103,8 @@ static av_cold void aac_static_table_init(void)
|
|||||||
AAC_RENAME(cbrt_tableinit)();
|
AAC_RENAME(cbrt_tableinit)();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static AVOnce aac_table_init = AV_ONCE_INIT;
|
||||||
|
|
||||||
static av_cold int aac_decode_init(AVCodecContext *avctx)
|
static av_cold int aac_decode_init(AVCodecContext *avctx)
|
||||||
{
|
{
|
||||||
AACContext *ac = avctx->priv_data;
|
AACContext *ac = avctx->priv_data;
|
||||||
|
@ -29,6 +29,7 @@
|
|||||||
* add sane pulse detection
|
* add sane pulse detection
|
||||||
***********************************/
|
***********************************/
|
||||||
|
|
||||||
|
#include "libavutil/thread.h"
|
||||||
#include "libavutil/float_dsp.h"
|
#include "libavutil/float_dsp.h"
|
||||||
#include "libavutil/opt.h"
|
#include "libavutil/opt.h"
|
||||||
#include "avcodec.h"
|
#include "avcodec.h"
|
||||||
@ -46,6 +47,8 @@
|
|||||||
|
|
||||||
#include "psymodel.h"
|
#include "psymodel.h"
|
||||||
|
|
||||||
|
static AVOnce aac_table_init = AV_ONCE_INIT;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Make AAC audio config object.
|
* Make AAC audio config object.
|
||||||
* @see 1.6.2.1 "Syntax - AudioSpecificConfig"
|
* @see 1.6.2.1 "Syntax - AudioSpecificConfig"
|
||||||
|
@ -27,15 +27,12 @@
|
|||||||
* @author Maxim Gavrilov ( maxim.gavrilov gmail com )
|
* @author Maxim Gavrilov ( maxim.gavrilov gmail com )
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include "libavutil/thread.h"
|
|
||||||
#include "libavutil/mem.h"
|
#include "libavutil/mem.h"
|
||||||
#include "aac.h"
|
#include "aac.h"
|
||||||
#include "aac_tablegen.h"
|
#include "aac_tablegen.h"
|
||||||
|
|
||||||
#include <stdint.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_long_1024)[1024];
|
||||||
DECLARE_ALIGNED(32, float, ff_aac_kbd_short_128)[128];
|
DECLARE_ALIGNED(32, float, ff_aac_kbd_short_128)[128];
|
||||||
DECLARE_ALIGNED(32, int, ff_aac_kbd_long_1024_fixed)[1024];
|
DECLARE_ALIGNED(32, int, ff_aac_kbd_long_1024_fixed)[1024];
|
||||||
|
@ -30,7 +30,6 @@
|
|||||||
#ifndef AVCODEC_AACTAB_H
|
#ifndef AVCODEC_AACTAB_H
|
||||||
#define AVCODEC_AACTAB_H
|
#define AVCODEC_AACTAB_H
|
||||||
|
|
||||||
#include "libavutil/thread.h"
|
|
||||||
#include "libavutil/mem.h"
|
#include "libavutil/mem.h"
|
||||||
#include "aac.h"
|
#include "aac.h"
|
||||||
#include "aac_tablegen_decl.h"
|
#include "aac_tablegen_decl.h"
|
||||||
@ -41,8 +40,6 @@
|
|||||||
* Tables in this file are shared by the AAC decoders and encoder
|
* Tables in this file are shared by the AAC decoders and encoder
|
||||||
*/
|
*/
|
||||||
|
|
||||||
extern AVOnce aac_table_init; /* Protects ff_aac_tableinit() */
|
|
||||||
|
|
||||||
/* @name ltp_coef
|
/* @name ltp_coef
|
||||||
* Table of the LTP coefficients
|
* Table of the LTP coefficients
|
||||||
*/
|
*/
|
||||||
|
Loading…
x
Reference in New Issue
Block a user