diff --git a/libavcodec/svq3.c b/libavcodec/svq3.c index f24f2e4b1d..e1d25885c6 100644 --- a/libavcodec/svq3.c +++ b/libavcodec/svq3.c @@ -1187,6 +1187,7 @@ static int svq3_decode_frame(AVCodecContext *avctx, void *data, if (h->pict_type != AV_PICTURE_TYPE_I) { if (!s->last_pic->f.data[0]) { av_log(avctx, AV_LOG_ERROR, "Missing reference frame.\n"); + av_frame_unref(s->last_pic); ret = get_buffer(avctx, s->last_pic); if (ret < 0) return ret; @@ -1199,6 +1200,7 @@ static int svq3_decode_frame(AVCodecContext *avctx, void *data, if (h->pict_type == AV_PICTURE_TYPE_B && !s->next_pic->f.data[0]) { av_log(avctx, AV_LOG_ERROR, "Missing reference frame.\n"); + av_frame_unref(s->next_pic); ret = get_buffer(avctx, s->next_pic); if (ret < 0) return ret;