| @@ -557,12 +557,8 @@ static av_cold int aac_decode_init(AVCodecContext *avctx) | |||
| return -1; | |||
| } | |||
| /* ffdshow custom code */ | |||
| #if CONFIG_AUDIO_FLOAT | |||
| avctx->sample_fmt = AV_SAMPLE_FMT_FLT; | |||
| #else | |||
| avctx->sample_fmt = AV_SAMPLE_FMT_S16; | |||
| #endif | |||
| avctx->sample_fmt = avctx->request_sample_fmt == AV_SAMPLE_FMT_FLT ? | |||
| AV_SAMPLE_FMT_FLT : AV_SAMPLE_FMT_S16; | |||
| AAC_INIT_VLC_STATIC( 0, 304); | |||
| AAC_INIT_VLC_STATIC( 1, 270); | |||
| @@ -2179,12 +2175,8 @@ static int aac_decode_frame_int(AVCodecContext *avctx, void *data, | |||
| avctx->frame_size = samples; | |||
| } | |||
| /* ffdshow custom code */ | |||
| #if CONFIG_AUDIO_FLOAT | |||
| data_size_tmp = samples * avctx->channels * sizeof(float); | |||
| #else | |||
| data_size_tmp = samples * avctx->channels * sizeof(int16_t); | |||
| #endif | |||
| data_size_tmp = samples * avctx->channels; | |||
| data_size_tmp *= avctx->sample_fmt == AV_SAMPLE_FMT_FLT ? sizeof(float) : sizeof(int16_t); | |||
| if (*data_size < data_size_tmp) { | |||
| av_log(avctx, AV_LOG_ERROR, | |||
| "Output buffer too small (%d) or trying to output too many samples (%d) for this frame.\n", | |||
| @@ -2194,12 +2186,10 @@ static int aac_decode_frame_int(AVCodecContext *avctx, void *data, | |||
| *data_size = data_size_tmp; | |||
| if (samples) { | |||
| /* ffdshow custom code */ | |||
| #if CONFIG_AUDIO_FLOAT | |||
| float_interleave(data, (const float **)ac->output_data, samples, avctx->channels); | |||
| #else | |||
| ac->fmt_conv.float_to_int16_interleave(data, (const float **)ac->output_data, samples, avctx->channels); | |||
| #endif | |||
| if (avctx->sample_fmt == AV_SAMPLE_FMT_FLT) { | |||
| float_interleave(data, (const float **)ac->output_data, samples, avctx->channels); | |||
| } else | |||
| ac->fmt_conv.float_to_int16_interleave(data, (const float **)ac->output_data, samples, avctx->channels); | |||
| } | |||
| if (ac->output_configured) | |||
| @@ -2518,11 +2508,7 @@ AVCodec ff_aac_decoder = { | |||
| aac_decode_frame, | |||
| .long_name = NULL_IF_CONFIG_SMALL("Advanced Audio Coding"), | |||
| .sample_fmts = (const enum AVSampleFormat[]) { | |||
| #if CONFIG_AUDIO_FLOAT | |||
| AV_SAMPLE_FMT_FLT,AV_SAMPLE_FMT_NONE | |||
| #else | |||
| AV_SAMPLE_FMT_S16,AV_SAMPLE_FMT_NONE | |||
| #endif | |||
| AV_SAMPLE_FMT_S16,AV_SAMPLE_FMT_FLT,AV_SAMPLE_FMT_NONE | |||
| }, | |||
| .channel_layouts = aac_channel_layout, | |||
| }; | |||
| @@ -2542,11 +2528,7 @@ AVCodec ff_aac_latm_decoder = { | |||
| .decode = latm_decode_frame, | |||
| .long_name = NULL_IF_CONFIG_SMALL("AAC LATM (Advanced Audio Codec LATM syntax)"), | |||
| .sample_fmts = (const enum AVSampleFormat[]) { | |||
| #if CONFIG_AUDIO_FLOAT | |||
| AV_SAMPLE_FMT_FLT,AV_SAMPLE_FMT_NONE | |||
| #else | |||
| AV_SAMPLE_FMT_S16,AV_SAMPLE_FMT_NONE | |||
| #endif | |||
| AV_SAMPLE_FMT_S16,AV_SAMPLE_FMT_FLT,AV_SAMPLE_FMT_NONE | |||
| }, | |||
| .channel_layouts = aac_channel_layout, | |||
| }; | |||