|
|
|
@@ -84,8 +84,12 @@ av_cold int ff_mjpeg_decode_init(AVCodecContext *avctx) |
|
|
|
{ |
|
|
|
MJpegDecodeContext *s = avctx->priv_data; |
|
|
|
|
|
|
|
if (!s->picture_ptr) |
|
|
|
s->picture_ptr = &s->picture; |
|
|
|
if (!s->picture_ptr) { |
|
|
|
s->picture = av_frame_alloc(); |
|
|
|
if (!s->picture) |
|
|
|
return AVERROR(ENOMEM); |
|
|
|
s->picture_ptr = s->picture; |
|
|
|
} |
|
|
|
|
|
|
|
s->avctx = avctx; |
|
|
|
ff_hpeldsp_init(&s->hdsp, avctx->flags); |
|
|
|
@@ -1651,7 +1655,10 @@ av_cold int ff_mjpeg_decode_end(AVCodecContext *avctx) |
|
|
|
MJpegDecodeContext *s = avctx->priv_data; |
|
|
|
int i, j; |
|
|
|
|
|
|
|
if (s->picture_ptr) |
|
|
|
if (s->picture) { |
|
|
|
av_frame_free(&s->picture); |
|
|
|
s->picture_ptr = NULL; |
|
|
|
} else if (s->picture_ptr) |
|
|
|
av_frame_unref(s->picture_ptr); |
|
|
|
|
|
|
|
av_free(s->buffer); |
|
|
|
|