| @@ -285,7 +285,6 @@ static av_always_inline int get_bitalloc(GetBitContext *gb, BitAlloc *ba, | |||
| typedef struct { | |||
| AVCodecContext *avctx; | |||
| AVFrame frame; | |||
| /* Frame header */ | |||
| int frame_type; ///< type of the current frame | |||
| int samples_deficit; ///< deficit sample count | |||
| @@ -1653,6 +1652,7 @@ static void dca_exss_parse_header(DCAContext *s) | |||
| static int dca_decode_frame(AVCodecContext *avctx, void *data, | |||
| int *got_frame_ptr, AVPacket *avpkt) | |||
| { | |||
| AVFrame *frame = data; | |||
| const uint8_t *buf = avpkt->data; | |||
| int buf_size = avpkt->size; | |||
| @@ -1835,17 +1835,17 @@ static int dca_decode_frame(AVCodecContext *avctx, void *data, | |||
| avctx->channels = channels; | |||
| /* get output buffer */ | |||
| s->frame.nb_samples = 256 * (s->sample_blocks / 8); | |||
| if ((ret = ff_get_buffer(avctx, &s->frame)) < 0) { | |||
| frame->nb_samples = 256 * (s->sample_blocks / 8); | |||
| if ((ret = ff_get_buffer(avctx, frame)) < 0) { | |||
| av_log(avctx, AV_LOG_ERROR, "get_buffer() failed\n"); | |||
| return ret; | |||
| } | |||
| samples_flt = (float **) s->frame.extended_data; | |||
| samples_flt = (float **)frame->extended_data; | |||
| /* allocate buffer for extra channels if downmixing */ | |||
| if (avctx->channels < full_channels) { | |||
| ret = av_samples_get_buffer_size(NULL, full_channels - channels, | |||
| s->frame.nb_samples, | |||
| frame->nb_samples, | |||
| avctx->sample_fmt, 0); | |||
| if (ret < 0) | |||
| return ret; | |||
| @@ -1858,7 +1858,7 @@ static int dca_decode_frame(AVCodecContext *avctx, void *data, | |||
| ret = av_samples_fill_arrays((uint8_t **)s->extra_channels, NULL, | |||
| s->extra_channels_buffer, | |||
| full_channels - channels, | |||
| s->frame.nb_samples, avctx->sample_fmt, 0); | |||
| frame->nb_samples, avctx->sample_fmt, 0); | |||
| if (ret < 0) | |||
| return ret; | |||
| } | |||
| @@ -1890,8 +1890,7 @@ static int dca_decode_frame(AVCodecContext *avctx, void *data, | |||
| for (i = 0; i < 2 * s->lfe * 4; i++) | |||
| s->lfe_data[i] = s->lfe_data[i + lfe_samples]; | |||
| *got_frame_ptr = 1; | |||
| *(AVFrame *) data = s->frame; | |||
| *got_frame_ptr = 1; | |||
| return buf_size; | |||
| } | |||
| @@ -1925,9 +1924,6 @@ static av_cold int dca_decode_init(AVCodecContext *avctx) | |||
| avctx->channels = avctx->request_channels; | |||
| } | |||
| avcodec_get_frame_defaults(&s->frame); | |||
| avctx->coded_frame = &s->frame; | |||
| return 0; | |||
| } | |||