@@ -1200,11 +1200,6 @@ static av_cold int aac_decode_init_internal(AVCodecContext *avctx)
ac->avctx = avctx;
ac->oc[1].m4ac.sample_rate = avctx->sample_rate;
- if (ac->is_fixed)
- avctx->sample_fmt = AV_SAMPLE_FMT_S32P;
- else
- avctx->sample_fmt = AV_SAMPLE_FMT_FLTP;
-
if (avctx->extradata_size > 0) {
if ((ret = decode_audio_specific_config(ac, ac->avctx, &ac->oc[1].m4ac,
avctx->extradata,
@@ -1254,14 +1249,20 @@ static av_cold int aac_decode_init_internal(AVCodecContext *avctx)
static av_cold int aac_decode_init(AVCodecContext *avctx)
{
AACDecContext *ac = avctx->priv_data;
+
ac->is_fixed = 0;
+ avctx->sample_fmt = AV_SAMPLE_FMT_FLTP;
+
return aac_decode_init_internal(avctx);
}
static av_cold int aac_decode_init_fixed(AVCodecContext *avctx)
{
AACDecContext *ac = avctx->priv_data;
+
ac->is_fixed = 1;
+ avctx->sample_fmt = AV_SAMPLE_FMT_S32P;
+
return aac_decode_init_internal(avctx);
}
Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com> --- libavcodec/aac/aacdec.c | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-)