diff --git a/libavcodec/fraps.c b/libavcodec/fraps.c index 438c215152..f12e4e01ba 100644 --- a/libavcodec/fraps.c +++ b/libavcodec/fraps.c @@ -45,7 +45,7 @@ */ typedef struct FrapsContext { AVCodecContext *avctx; - AVFrame frame; + AVFrame *frame; uint8_t *tmpbuf; int tmpbuf_size; DSPContext dsp; @@ -66,7 +66,9 @@ static av_cold int decode_init(AVCodecContext *avctx) s->avctx = avctx; s->tmpbuf = NULL; - avcodec_get_frame_defaults(&s->frame); + s->frame = av_frame_alloc(); + if (!s->frame) + return AVERROR(ENOMEM); ff_dsputil_init(&s->dsp, avctx); @@ -136,7 +138,7 @@ static int decode_frame(AVCodecContext *avctx, const uint8_t *buf = avpkt->data; int buf_size = avpkt->size; AVFrame *frame = data; - AVFrame * const f = &s->frame; + AVFrame * const f = s->frame; uint32_t header; unsigned int version,header_size; unsigned int x, y; @@ -361,7 +363,7 @@ static av_cold int decode_end(AVCodecContext *avctx) { FrapsContext *s = (FrapsContext*)avctx->priv_data; - av_frame_unref(&s->frame); + av_frame_free(&s->frame); av_freep(&s->tmpbuf); return 0;