diff --git a/video/out/vo_dmabuf_wayland.c b/video/out/vo_dmabuf_wayland.c index 4ba58781ab..a5d481a56a 100644 --- a/video/out/vo_dmabuf_wayland.c +++ b/video/out/vo_dmabuf_wayland.c @@ -591,8 +591,11 @@ static void draw_frame(struct vo *vo, struct vo_frame *frame) struct osd_buffer *osd_buf; double pts; - if (!vo_wayland_check_visible(vo)) + if (!vo_wayland_check_visible(vo)) { + if (frame->current) + talloc_free(frame); return; + } if (p->destroy_buffers) destroy_buffers(vo);