summaryrefslogtreecommitdiffstats
path: root/video/out/vo_wayland.c
diff options
context:
space:
mode:
Diffstat (limited to 'video/out/vo_wayland.c')
-rw-r--r--video/out/vo_wayland.c6
1 files changed, 5 insertions, 1 deletions
diff --git a/video/out/vo_wayland.c b/video/out/vo_wayland.c
index f41c75f114..be51ec55de 100644
--- a/video/out/vo_wayland.c
+++ b/video/out/vo_wayland.c
@@ -658,6 +658,7 @@ static void draw_image(struct vo *vo, mp_image_t *mpi)
if (!buf) {
MP_VERBOSE(p->wl, "can't draw, back buffer is busy\n");
+ talloc_free(mpi);
return;
}
@@ -678,7 +679,10 @@ static void draw_image(struct vo *vo, mp_image_t *mpi)
struct mp_image img = buffer_get_mp_image(p, &p->video_bufpool, buf);
mp_sws_scale(p->sws, &img, &src);
- mp_image_setrefp(&p->original_image, mpi);
+ if (mpi != p->original_image) {
+ talloc_free(p->original_image);
+ p->original_image = mpi;
+ }
buffer_finalise_back(buf);
draw_osd(vo);