summaryrefslogtreecommitdiff
path: root/libavcodec/svq3.c
diff options
context:
space:
mode:
Diffstat (limited to 'libavcodec/svq3.c')
-rw-r--r--libavcodec/svq3.c2
1 files changed, 2 insertions, 0 deletions
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;