diff options
author | Michael Niedermayer <michaelni@gmx.at> | 2014-11-30 11:23:34 +0100 |
---|---|---|
committer | Michael Niedermayer <michaelni@gmx.at> | 2014-11-30 11:23:34 +0100 |
commit | 93f959b672b1673f5eab5ca072bf9bdcee4b21bd (patch) | |
tree | 4e843ecf09ea79ddf1642ac15b2c60642de1588f | |
parent | 1aca990bd9e3738d4d92575d848fa0558a48df0d (diff) | |
download | ffmpeg-93f959b672b1673f5eab5ca072bf9bdcee4b21bd.tar.gz |
avcodec/atrac3: Use avpriv_float_dsp_alloc()
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
-rw-r--r-- | libavcodec/atrac3.c | 9 |
1 files changed, 5 insertions, 4 deletions
diff --git a/libavcodec/atrac3.c b/libavcodec/atrac3.c index d9f1348d23..9dc0811dab 100644 --- a/libavcodec/atrac3.c +++ b/libavcodec/atrac3.c @@ -109,7 +109,7 @@ typedef struct ATRAC3Context { AtracGCContext gainc_ctx; FFTContext mdct_ctx; FmtConvertContext fmt_conv; - AVFloatDSPContext fdsp; + AVFloatDSPContext *fdsp; } ATRAC3Context; static DECLARE_ALIGNED(32, float, mdct_window)[MDCT_SIZE]; @@ -142,7 +142,7 @@ static void imlt(ATRAC3Context *q, float *input, float *output, int odd_band) q->mdct_ctx.imdct_calc(&q->mdct_ctx, output, input); /* Perform windowing on the output. */ - q->fdsp.vector_fmul(output, output, mdct_window, MDCT_SIZE); + q->fdsp->vector_fmul(output, output, mdct_window, MDCT_SIZE); } /* @@ -192,6 +192,7 @@ static av_cold int atrac3_decode_close(AVCodecContext *avctx) av_freep(&q->units); av_freep(&q->decoded_bytes_buffer); + av_freep(&q->fdsp); ff_mdct_end(&q->mdct_ctx); @@ -915,11 +916,11 @@ static av_cold int atrac3_decode_init(AVCodecContext *avctx) } ff_atrac_init_gain_compensation(&q->gainc_ctx, 4, 3); - avpriv_float_dsp_init(&q->fdsp, avctx->flags & CODEC_FLAG_BITEXACT); + q->fdsp = avpriv_float_dsp_alloc(avctx->flags & CODEC_FLAG_BITEXACT); ff_fmt_convert_init(&q->fmt_conv, avctx); q->units = av_mallocz_array(avctx->channels, sizeof(*q->units)); - if (!q->units) { + if (!q->units || !q->fdsp) { atrac3_decode_close(avctx); return AVERROR(ENOMEM); } |