diff --git a/subprojects/gst-plugins-bad/ext/wayland/gstwaylandsink.c b/subprojects/gst-plugins-bad/ext/wayland/gstwaylandsink.c index 8911be4152..bdeca63a15 100644 --- a/subprojects/gst-plugins-bad/ext/wayland/gstwaylandsink.c +++ b/subprojects/gst-plugins-bad/ext/wayland/gstwaylandsink.c @@ -924,12 +924,12 @@ gst_wayland_sink_show_frame (GstVideoSink * vsink, GstBuffer * buffer) wbuf = gst_wl_linux_dmabuf_construct_wl_buffer (buffer, self->display, &self->drm_info); - /* DMABuf did not work, let try and make this a dmabuf, it does not matter - * if it was a SHM since the compositor needs to copy that anyway, and - * offloading the compositor from a copy helps maintaining a smoother - * desktop. - */ - if (!self->skip_dumb_buffer_copy) { + if (!wbuf && !self->skip_dumb_buffer_copy) { + /* DMABuf did not work, let try and make this a dmabuf, it does not matter + * if it was a SHM since the compositor needs to copy that anyway, and + * offloading the compositor from a copy helps maintaining a smoother + * desktop. + */ GstVideoFrame src, dst; if (!gst_wayland_activate_drm_dumb_pool (self)) {