You've already forked FFmpeg
mirror of
https://github.com/FFmpeg/FFmpeg.git
synced 2025-11-23 21:54:53 +02:00
avcodec/ac3enc: Use avpriv_float_dsp_alloc()
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
This commit is contained in:
@@ -2035,6 +2035,7 @@ av_cold int ff_ac3_encode_close(AVCodecContext *avctx)
|
|||||||
av_freep(&s->qmant_buffer);
|
av_freep(&s->qmant_buffer);
|
||||||
av_freep(&s->cpl_coord_exp_buffer);
|
av_freep(&s->cpl_coord_exp_buffer);
|
||||||
av_freep(&s->cpl_coord_mant_buffer);
|
av_freep(&s->cpl_coord_mant_buffer);
|
||||||
|
av_freep(&s->fdsp);
|
||||||
for (blk = 0; blk < s->num_blocks; blk++) {
|
for (blk = 0; blk < s->num_blocks; blk++) {
|
||||||
AC3Block *block = &s->blocks[blk];
|
AC3Block *block = &s->blocks[blk];
|
||||||
av_freep(&block->mdct_coef);
|
av_freep(&block->mdct_coef);
|
||||||
|
|||||||
@@ -165,7 +165,7 @@ typedef struct AC3EncodeContext {
|
|||||||
AVCodecContext *avctx; ///< parent AVCodecContext
|
AVCodecContext *avctx; ///< parent AVCodecContext
|
||||||
PutBitContext pb; ///< bitstream writer context
|
PutBitContext pb; ///< bitstream writer context
|
||||||
AudioDSPContext adsp;
|
AudioDSPContext adsp;
|
||||||
AVFloatDSPContext fdsp;
|
AVFloatDSPContext *fdsp;
|
||||||
MECmpContext mecc;
|
MECmpContext mecc;
|
||||||
AC3DSPContext ac3dsp; ///< AC-3 optimized functions
|
AC3DSPContext ac3dsp; ///< AC-3 optimized functions
|
||||||
FFTContext mdct; ///< FFT context for MDCT calculation
|
FFTContext mdct; ///< FFT context for MDCT calculation
|
||||||
|
|||||||
@@ -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)
|
av_cold int ff_ac3_float_encode_init(AVCodecContext *avctx)
|
||||||
{
|
{
|
||||||
AC3EncodeContext *s = avctx->priv_data;
|
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);
|
return ff_ac3_encode_init(avctx);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -108,7 +108,7 @@ static void apply_mdct(AC3EncodeContext *s)
|
|||||||
const SampleType *input_samples = &s->planar_samples[ch][blk * AC3_BLOCK_SIZE];
|
const SampleType *input_samples = &s->planar_samples[ch][blk * AC3_BLOCK_SIZE];
|
||||||
|
|
||||||
#if CONFIG_AC3ENC_FLOAT
|
#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);
|
s->mdct_window, AC3_WINDOW_SIZE);
|
||||||
#else
|
#else
|
||||||
s->ac3dsp.apply_window_int16(s->windowed_samples, input_samples,
|
s->ac3dsp.apply_window_int16(s->windowed_samples, input_samples,
|
||||||
|
|||||||
Reference in New Issue
Block a user