- if (s->initialized) {
- frame->nb_samples = avctx->frame_size;
- if ((ret = ff_get_buffer(avctx, frame, 0)) < 0)
- return ret;
-
- if (s->anc_buffer) {
- buf_size = DECODER_BUFFSIZE * DECODER_MAX_CHANNELS;
- buf = s->decoder_buffer;
- } else {
- buf = frame->extended_data[0];
- buf_size = avctx->channels * frame->nb_samples *
- av_get_bytes_per_sample(avctx->sample_fmt);
- }
- } else {
- buf_size = DECODER_BUFFSIZE * DECODER_MAX_CHANNELS;
-
- if (!s->decoder_buffer)
- s->decoder_buffer = av_malloc(buf_size);
- if (!s->decoder_buffer)
- return AVERROR(ENOMEM);
-
- buf = tmpptr = s->decoder_buffer;
- }
-
- err = aacDecoder_DecodeFrame(s->handle, (INT_PCM *) buf, buf_size, 0);
+ err = aacDecoder_DecodeFrame(s->handle, (INT_PCM *) s->decoder_buffer, s->decoder_buffer_size, 0);