[FFmpeg-cvslog] avcodec/ac3enc: Use avpriv_float_dsp_alloc()
Michael Niedermayer
git at videolan.org
Sat Nov 29 19:08:42 CET 2014
ffmpeg | branch: master | Michael Niedermayer <michaelni at gmx.at> | Sat Nov 29 18:54:27 2014 +0100| [cae851c78921affbd178b1eb522fbf619715c1c4] | committer: Michael Niedermayer
avcodec/ac3enc: Use avpriv_float_dsp_alloc()
Signed-off-by: Michael Niedermayer <michaelni at gmx.at>
> http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=cae851c78921affbd178b1eb522fbf619715c1c4
---
libavcodec/ac3enc.c | 1 +
libavcodec/ac3enc.h | 2 +-
libavcodec/ac3enc_float.c | 4 +++-
libavcodec/ac3enc_template.c | 2 +-
4 files changed, 6 insertions(+), 3 deletions(-)
diff --git a/libavcodec/ac3enc.c b/libavcodec/ac3enc.c
index 8fc9952..dc52908 100644
--- a/libavcodec/ac3enc.c
+++ b/libavcodec/ac3enc.c
@@ -2035,6 +2035,7 @@ av_cold int ff_ac3_encode_close(AVCodecContext *avctx)
av_freep(&s->qmant_buffer);
av_freep(&s->cpl_coord_exp_buffer);
av_freep(&s->cpl_coord_mant_buffer);
+ av_freep(&s->fdsp);
for (blk = 0; blk < s->num_blocks; blk++) {
AC3Block *block = &s->blocks[blk];
av_freep(&block->mdct_coef);
diff --git a/libavcodec/ac3enc.h b/libavcodec/ac3enc.h
index 74da612..a2442d0 100644
--- a/libavcodec/ac3enc.h
+++ b/libavcodec/ac3enc.h
@@ -165,7 +165,7 @@ typedef struct AC3EncodeContext {
AVCodecContext *avctx; ///< parent AVCodecContext
PutBitContext pb; ///< bitstream writer context
AudioDSPContext adsp;
- AVFloatDSPContext fdsp;
+ AVFloatDSPContext *fdsp;
MECmpContext mecc;
AC3DSPContext ac3dsp; ///< AC-3 optimized functions
FFTContext mdct; ///< FFT context for MDCT calculation
diff --git a/libavcodec/ac3enc_float.c b/libavcodec/ac3enc_float.c
index fa6e509..766b14e 100644
--- a/libavcodec/ac3enc_float.c
+++ b/libavcodec/ac3enc_float.c
@@ -139,7 +139,9 @@ static CoefType calc_cpl_coord(CoefSumType energy_ch, CoefSumType energy_cpl)
av_cold int ff_ac3_float_encode_init(AVCodecContext *avctx)
{
AC3EncodeContext *s = avctx->priv_data;
- avpriv_float_dsp_init(&s->fdsp, avctx->flags & CODEC_FLAG_BITEXACT);
+ s->fdsp = avpriv_float_dsp_alloc(avctx->flags & CODEC_FLAG_BITEXACT);
+ if (!s->fdsp)
+ return AVERROR(ENOMEM);
return ff_ac3_encode_init(avctx);
}
diff --git a/libavcodec/ac3enc_template.c b/libavcodec/ac3enc_template.c
index 3e02408..c3ad76f 100644
--- a/libavcodec/ac3enc_template.c
+++ b/libavcodec/ac3enc_template.c
@@ -108,7 +108,7 @@ static void apply_mdct(AC3EncodeContext *s)
const SampleType *input_samples = &s->planar_samples[ch][blk * AC3_BLOCK_SIZE];
#if CONFIG_AC3ENC_FLOAT
- s->fdsp.vector_fmul(s->windowed_samples, input_samples,
+ s->fdsp->vector_fmul(s->windowed_samples, input_samples,
s->mdct_window, AC3_WINDOW_SIZE);
#else
s->ac3dsp.apply_window_int16(s->windowed_samples, input_samples,
More information about the ffmpeg-cvslog
mailing list