Browse Source

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>
tags/n3.0
Rostislav Pehlivanov 10 years ago
parent
commit
ec0719264c
4 changed files with 5 additions and 6 deletions
  1. +2
    -0
      libavcodec/aacdec_template.c
  2. +3
    -0
      libavcodec/aacenc.c
  3. +0
    -3
      libavcodec/aactab.c
  4. +0
    -3
      libavcodec/aactab.h

+ 2
- 0
libavcodec/aacdec_template.c View 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;


+ 3
- 0
libavcodec/aacenc.c View 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"


+ 0
- 3
libavcodec/aactab.c View File

@@ -27,15 +27,12 @@
* @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];


+ 0
- 3
libavcodec/aactab.h View 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
*/


Loading…
Cancel
Save