@@ -568,8 +568,8 @@ static av_cold int aac_decode_init(AVCodecContext *avctx) | |||||
// -1024 - Compensate wrong IMDCT method. | // -1024 - Compensate wrong IMDCT method. | ||||
// 60 - Required to scale values to the correct range [-32768,32767] | // 60 - Required to scale values to the correct range [-32768,32767] | ||||
// for float to int16 conversion. (1 << (60 / 4)) == 32768 | // for float to int16 conversion. (1 << (60 / 4)) == 32768 | ||||
ac->sf_scale = 1. / -1024.; | |||||
ac->sf_offset = 60; | |||||
ac->sf_scale = 1. / -1024.; | |||||
ac->sf_offset = 60; | |||||
ff_aac_tableinit(); | ff_aac_tableinit(); | ||||
@@ -195,8 +195,8 @@ static av_cold int ac3_decode_init(AVCodecContext *avctx) | |||||
dsputil_init(&s->dsp, avctx); | dsputil_init(&s->dsp, avctx); | ||||
av_lfg_init(&s->dith_state, 0); | av_lfg_init(&s->dith_state, 0); | ||||
/* set bias values for float to int16 conversion */ | |||||
s->mul_bias = 32767.0f; | |||||
/* set scale value for float to int16 conversion */ | |||||
s->mul_bias = 32767.0f; | |||||
/* allow downmixing to stereo or mono */ | /* allow downmixing to stereo or mono */ | ||||
if (avctx->channels > 0 && avctx->request_channels > 0 && | if (avctx->channels > 0 && avctx->request_channels > 0 && | ||||
@@ -1838,14 +1838,13 @@ static av_cold int dca_decode_init(AVCodecContext * avctx) | |||||
s->samples_chanptr[i] = s->samples + i * 256; | s->samples_chanptr[i] = s->samples + i * 256; | ||||
avctx->sample_fmt = AV_SAMPLE_FMT_S16; | avctx->sample_fmt = AV_SAMPLE_FMT_S16; | ||||
s->scale_bias = 1.0; | |||||
/* allow downmixing to stereo */ | |||||
if (avctx->channels > 0 && avctx->request_channels < avctx->channels && | |||||
avctx->request_channels == 2) { | |||||
avctx->channels = avctx->request_channels; | |||||
} | |||||
s->scale_bias = 1.0; | |||||
/* allow downmixing to stereo */ | |||||
if (avctx->channels > 0 && avctx->request_channels < avctx->channels && | |||||
avctx->request_channels == 2) { | |||||
avctx->channels = avctx->request_channels; | |||||
} | |||||
return 0; | return 0; | ||||
} | } | ||||
@@ -135,7 +135,7 @@ static av_cold int decode_init(AVCodecContext * avctx) { | |||||
dsputil_init(&s->dsp, avctx); | dsputil_init(&s->dsp, avctx); | ||||
s->scale_bias = 1.0/(1*8); | |||||
s->scale_bias = 1.0/(1*8); | |||||
/* Generate overlap window */ | /* Generate overlap window */ | ||||
if (!ff_sine_128[127]) | if (!ff_sine_128[127]) | ||||
@@ -789,13 +789,13 @@ static int wma_decode_frame(WMACodecContext *s, int16_t *samples) | |||||
/* convert frame to integer */ | /* convert frame to integer */ | ||||
n = s->frame_len; | n = s->frame_len; | ||||
incr = s->nb_channels; | incr = s->nb_channels; | ||||
for (ch = 0; ch < MAX_CHANNELS; ch++) | |||||
output[ch] = s->frame_out[ch]; | |||||
s->dsp.float_to_int16_interleave(samples, output, n, incr); | |||||
for(ch = 0; ch < incr; ch++) { | |||||
/* prepare for next block */ | |||||
memmove(&s->frame_out[ch][0], &s->frame_out[ch][n], n * sizeof(float)); | |||||
} | |||||
for (ch = 0; ch < MAX_CHANNELS; ch++) | |||||
output[ch] = s->frame_out[ch]; | |||||
s->dsp.float_to_int16_interleave(samples, output, n, incr); | |||||
for (ch = 0; ch < incr; ch++) { | |||||
/* prepare for next block */ | |||||
memmove(&s->frame_out[ch][0], &s->frame_out[ch][n], n * sizeof(float)); | |||||
} | |||||
#ifdef TRACE | #ifdef TRACE | ||||
dump_shorts(s, "samples", samples, n * s->nb_channels); | dump_shorts(s, "samples", samples, n * s->nb_channels); | ||||