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 <fabien.dessenne@st.com>
Signed-off-by: Benjamin Gaignard <benjamin.gaignard@linaro.org>
}
}
+ /* 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);