From 23bb5f53196773139e138a67a4ed2ee2dedc9aa9 Mon Sep 17 00:00:00 2001 From: Benjamin Gaignard Date: Tue, 7 Oct 2014 10:37:33 +0200 Subject: [PATCH] waylandsink: do not render twice the same buffer Do not try to render a buffer that is already being rendered. This happens typically during the initial rendering stage as the first buffer is rendered twice: first by preroll(), then by render(). This commit avoids this assertion failure: CRITICAL: gst_wayland_compositor_acquire_buffer: assertion 'meta->used_by_compositor == FALSE' failed https://bugzilla.gnome.org/show_bug.cgi?id=738069 Signed-off-by: Fabien Dessenne Signed-off-by: Benjamin Gaignard --- ext/wayland/gstwaylandsink.c | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/ext/wayland/gstwaylandsink.c b/ext/wayland/gstwaylandsink.c index 363b31bc48..d666a201ca 100644 --- a/ext/wayland/gstwaylandsink.c +++ b/ext/wayland/gstwaylandsink.c @@ -667,6 +667,12 @@ gst_wayland_sink_render (GstBaseSink * bsink, GstBuffer * buffer) } } + /* drop double rendering */ + if (G_UNLIKELY (to_render == sink->last_buffer)) { + GST_LOG_OBJECT (sink, "Buffer already being rendered"); + goto done; + } + gst_buffer_replace (&sink->last_buffer, to_render); render_last_buffer (sink); -- 2.34.1