summaryrefslogtreecommitdiffstats
path: root/video/out/vo_vaapi.c
diff options
context:
space:
mode:
Diffstat (limited to 'video/out/vo_vaapi.c')
-rw-r--r--video/out/vo_vaapi.c4
1 files changed, 3 insertions, 1 deletions
diff --git a/video/out/vo_vaapi.c b/video/out/vo_vaapi.c
index c1c34370fd..caf383c3f4 100644
--- a/video/out/vo_vaapi.c
+++ b/video/out/vo_vaapi.c
@@ -280,13 +280,15 @@ static void draw_image(struct vo *vo, struct mp_image *mpi)
struct mp_image *dst = p->swdec_surfaces[p->output_surface];
if (!dst || va_surface_upload(dst, mpi) < 0) {
MP_WARN(vo, "Could not upload surface.\n");
+ talloc_free(mpi);
return;
}
mp_image_copy_attributes(dst, mpi);
mpi = dst;
}
- mp_image_setrefp(&p->output_surfaces[p->output_surface], mpi);
+ talloc_free(p->output_surfaces[p->output_surface]);
+ p->output_surfaces[p->output_surface] = mpi;
draw_osd(vo);
}