typedef struct FDKAACDecContext {
const AVClass *class;
HANDLE_AACDECODER handle;
- int initialized;
uint8_t *decoder_buffer;
+ int decoder_buffer_size;
uint8_t *anc_buffer;
- enum ConcealMethod conceal_method;
+ int conceal_method;
int drc_level;
int drc_boost;
int drc_heavy;
goto end;
}
- if (!s->initialized) {
- if ((ret = get_stream_info(avctx)) < 0)
- goto end;
- s->initialized = 1;
- frame->nb_samples = avctx->frame_size;
- }
+ if ((ret = get_stream_info(avctx)) < 0)
+ goto end;
+ frame->nb_samples = avctx->frame_size;
- if (tmpptr) {
- frame->nb_samples = avctx->frame_size;
- if ((ret = ff_get_buffer(avctx, frame, 0)) < 0)
- goto end;
- }
- if (s->decoder_buffer) {
- memcpy(frame->extended_data[0], buf,
- avctx->channels * avctx->frame_size *
- av_get_bytes_per_sample(avctx->sample_fmt));
- if ((ret = ff_get_buffer(avctx, frame, 0)) < 0) {
- av_log(avctx, AV_LOG_ERROR, "ff_get_buffer() failed\n");
++ if ((ret = ff_get_buffer(avctx, frame, 0)) < 0)
+ goto end;
- }
+
- if (!s->anc_buffer)
- av_freep(&s->decoder_buffer);
- }
+ memcpy(frame->extended_data[0], s->decoder_buffer,
+ avctx->channels * avctx->frame_size *
+ av_get_bytes_per_sample(avctx->sample_fmt));
*got_frame_ptr = 1;
ret = avpkt->size - valid;