wayland: Don't return GST_FLOW_ERROR on flushing

Setting the sink to flushing causes gst_vaapi_window_wayland_sync() to
return FALSE which makes gst_vaapi_window_wayland_render() return
FALSE which ends up posting an ERROR message in
gst_vaapisink_show_frame_unlocked(). Solution is to just return TRUE
in the EBUSY case.

https://bugzilla.gnome.org/show_bug.cgi?id=753598
This commit is contained in:
Olivier Crete 2015-08-13 15:12:44 -04:00 committed by Víctor Manuel Jáquez Leal
parent 18a8b87975
commit a83057cdb1

View file

@ -186,8 +186,7 @@ gst_vaapi_window_wayland_sync (GstVaapiWindow * window)
goto again; goto again;
if (saved_errno == EBUSY) { /* closing */ if (saved_errno == EBUSY) { /* closing */
wl_display_cancel_read (wl_display); wl_display_cancel_read (wl_display);
priv->is_cancelled = TRUE; return FALSE;
break;
} }
goto error; goto error;
} }
@ -518,12 +517,7 @@ gst_vaapi_window_wayland_render (GstVaapiWindow * window,
/* Wait for the previous frame to complete redraw */ /* Wait for the previous frame to complete redraw */
if (!gst_vaapi_window_wayland_sync (window)) { if (!gst_vaapi_window_wayland_sync (window)) {
wl_buffer_destroy (buffer); wl_buffer_destroy (buffer);
return FALSE; return !priv->is_cancelled;
}
if (priv->is_cancelled) {
wl_buffer_destroy (buffer);
return TRUE;
} }
frame = frame_state_new (window); frame = frame_state_new (window);