diff options
author | Hendrik Leppkes <h.leppkes@gmail.com> | 2012-06-12 10:05:29 +0200 |
---|---|---|
committer | Michael Niedermayer <michaelni@gmx.at> | 2012-06-21 13:25:50 +0200 |
commit | f77fd34bc34c93a555eee99226d01d947d02a2a3 (patch) | |
tree | 6ac7feae531d8f1517bea26066f04d69c59531f5 | |
parent | 24e7a22e1fda8b5b18307a35f0511e659de76389 (diff) | |
download | ffmpeg-f77fd34bc34c93a555eee99226d01d947d02a2a3.tar.gz |
aac: move sample_fmt selection before decoder configuration.
The decoder configuration initializes the sbr mdct, which needs to know about the sample format to properly take the scale factor into account.
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
-rw-r--r-- | libavcodec/aacdec.c | 16 |
1 files changed, 8 insertions, 8 deletions
diff --git a/libavcodec/aacdec.c b/libavcodec/aacdec.c index b638e3b68e..6928b485b9 100644 --- a/libavcodec/aacdec.c +++ b/libavcodec/aacdec.c @@ -842,6 +842,14 @@ static av_cold int aac_decode_init(AVCodecContext *avctx) ac->avctx = avctx; ac->oc[1].m4ac.sample_rate = avctx->sample_rate; + if (avctx->request_sample_fmt == AV_SAMPLE_FMT_FLT) { + avctx->sample_fmt = AV_SAMPLE_FMT_FLT; + output_scale_factor = 1.0 / 32768.0; + } else { + avctx->sample_fmt = AV_SAMPLE_FMT_S16; + output_scale_factor = 1.0; + } + if (avctx->extradata_size > 0) { if (decode_audio_specific_config(ac, ac->avctx, &ac->oc[1].m4ac, avctx->extradata, @@ -877,14 +885,6 @@ static av_cold int aac_decode_init(AVCodecContext *avctx) } } - if (avctx->request_sample_fmt == AV_SAMPLE_FMT_FLT) { - avctx->sample_fmt = AV_SAMPLE_FMT_FLT; - output_scale_factor = 1.0 / 32768.0; - } else { - avctx->sample_fmt = AV_SAMPLE_FMT_S16; - output_scale_factor = 1.0; - } - AAC_INIT_VLC_STATIC( 0, 304); AAC_INIT_VLC_STATIC( 1, 270); AAC_INIT_VLC_STATIC( 2, 550); |