From d2e801e87a8d7d542b49a218334ebdf6f3f69d59 Mon Sep 17 00:00:00 2001 From: Hyunjun Ko Date: Fri, 11 Nov 2016 11:40:09 +0900 Subject: [PATCH] vaapisink: finish event thread at stop() The thread that handles window's events should be finished during pipeline's shutdown, otherwise it will remain alive during pipeline re-activation, leading to unexpected problems. This patch fixes failures of intensive_state_change scenario of gst-validate https://bugzilla.gnome.org/show_bug.cgi?id=774241 --- gst/vaapi/gstvaapisink.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/gst/vaapi/gstvaapisink.c b/gst/vaapi/gstvaapisink.c index cb593d2e3d..aada7d07d8 100644 --- a/gst/vaapi/gstvaapisink.c +++ b/gst/vaapi/gstvaapisink.c @@ -1224,6 +1224,7 @@ gst_vaapisink_stop (GstBaseSink * base_sink) { GstVaapiSink *const sink = GST_VAAPISINK_CAST (base_sink); + gst_vaapisink_set_event_handling (sink, FALSE); gst_buffer_replace (&sink->video_buffer, NULL); gst_vaapi_window_replace (&sink->window, NULL); @@ -1520,8 +1521,6 @@ gst_vaapisink_query (GstBaseSink * base_sink, GstQuery * query) static void gst_vaapisink_destroy (GstVaapiSink * sink) { - gst_vaapisink_set_event_handling (sink, FALSE); - cb_channels_finalize (sink); gst_buffer_replace (&sink->video_buffer, NULL); gst_caps_replace (&sink->caps, NULL);