diff --git a/libavcodec/ac3enc.c b/libavcodec/ac3enc.c index c13c50bbafbf90dd79cbcfab98d4b835c50634a9..9bc22bede4025f02caea52788e9cfc799fec719a 100644 --- a/libavcodec/ac3enc.c +++ b/libavcodec/ac3enc.c @@ -2479,7 +2479,6 @@ av_cold int ff_ac3_encode_init(AVCodecContext *avctx) goto init_fail; ff_dsputil_init(&s->dsp, avctx); - avpriv_float_dsp_init(&s->fdsp, avctx->flags & CODEC_FLAG_BITEXACT); ff_ac3dsp_init(&s->ac3dsp, avctx->flags & CODEC_FLAG_BITEXACT); dprint_options(s); diff --git a/libavcodec/ac3enc.h b/libavcodec/ac3enc.h index 94312ba46fbdd8bfb7340396f34d98d53a6e3b7b..13490340b35a8454d24cd14ff1a99e625076aba1 100644 --- a/libavcodec/ac3enc.h +++ b/libavcodec/ac3enc.h @@ -266,6 +266,7 @@ typedef struct AC3EncodeContext { extern const uint64_t ff_ac3_channel_layouts[19]; int ff_ac3_encode_init(AVCodecContext *avctx); +int ff_ac3_float_encode_init(AVCodecContext *avctx); int ff_ac3_encode_close(AVCodecContext *avctx); diff --git a/libavcodec/ac3enc_float.c b/libavcodec/ac3enc_float.c index 85ff66344e1109fc578e7e2c4f72a89aceae281f..fca95b1819eab5b2d093431bfe5390d820af155a 100644 --- a/libavcodec/ac3enc_float.c +++ b/libavcodec/ac3enc_float.c @@ -134,6 +134,12 @@ static CoefType calc_cpl_coord(CoefSumType energy_ch, CoefSumType energy_cpl) return FFMIN(coord, COEF_MAX); } +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); + return ff_ac3_encode_init(avctx); +} AVCodec ff_ac3_encoder = { .name = "ac3", @@ -141,7 +147,7 @@ AVCodec ff_ac3_encoder = { .type = AVMEDIA_TYPE_AUDIO, .id = AV_CODEC_ID_AC3, .priv_data_size = sizeof(AC3EncodeContext), - .init = ff_ac3_encode_init, + .init = ff_ac3_float_encode_init, .encode2 = ff_ac3_float_encode_frame, .close = ff_ac3_encode_close, .sample_fmts = (const enum AVSampleFormat[]){ AV_SAMPLE_FMT_FLTP, diff --git a/libavcodec/eac3enc.c b/libavcodec/eac3enc.c index 951122d80dbe5fa72478e144591a908b62d63275..e1d61f68bffb2ec635f4bb70e8e137e2214b4e82 100644 --- a/libavcodec/eac3enc.c +++ b/libavcodec/eac3enc.c @@ -257,7 +257,7 @@ AVCodec ff_eac3_encoder = { .type = AVMEDIA_TYPE_AUDIO, .id = AV_CODEC_ID_EAC3, .priv_data_size = sizeof(AC3EncodeContext), - .init = ff_ac3_encode_init, + .init = ff_ac3_float_encode_init, .encode2 = ff_ac3_float_encode_frame, .close = ff_ac3_encode_close, .sample_fmts = (const enum AVSampleFormat[]){ AV_SAMPLE_FMT_FLTP,