diff --git a/libavcodec/sonic.c b/libavcodec/sonic.c index 45cd902ddd..b67434f9ca 100644 --- a/libavcodec/sonic.c +++ b/libavcodec/sonic.c @@ -45,7 +45,6 @@ #define RIGHT_SIDE 2 typedef struct SonicContext { - AVFrame frame; int lossless, decorrelation; int num_taps, downsampling; @@ -767,9 +766,6 @@ static av_cold int sonic_decode_init(AVCodecContext *avctx) s->channels = avctx->channels; s->samplerate = avctx->sample_rate; - avcodec_get_frame_defaults(&s->frame); - avctx->coded_frame = &s->frame; - if (!avctx->extradata) { av_log(avctx, AV_LOG_ERROR, "No mandatory headers present\n"); @@ -879,13 +875,14 @@ static int sonic_decode_frame(AVCodecContext *avctx, GetBitContext gb; int i, quant, ch, j, ret; int16_t *samples; + AVFrame *frame = data; if (buf_size == 0) return 0; - s->frame.nb_samples = s->frame_size / avctx->channels; - if ((ret = ff_get_buffer(avctx, &s->frame, 0)) < 0) + frame->nb_samples = s->frame_size / avctx->channels; + if ((ret = ff_get_buffer(avctx, frame, 0)) < 0) return ret; - samples = (int16_t *)s->frame.data[0]; + samples = (int16_t *)frame->data[0]; // av_log(NULL, AV_LOG_INFO, "buf_size: %d\n", buf_size); @@ -958,7 +955,6 @@ static int sonic_decode_frame(AVCodecContext *avctx, align_get_bits(&gb); *got_frame_ptr = 1; - *(AVFrame*)data = s->frame; return (get_bits_count(&gb)+7)/8; }