summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorHyunjun Ko <zzoon@igalia.com>2016-11-11 11:40:09 +0900
committerVíctor Manuel Jáquez Leal <victorx.jaquez@intel.com>2016-11-11 11:17:25 +0100
commitfdc51091708b6a2755c859823230b2c695a756e7 (patch)
tree07411cec495acf0cf869c1b4c18f1016993d5cce
parentebba348a44a2dca8b4e044f09ef63404a4c97abb (diff)
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
-rw-r--r--gst/vaapi/gstvaapisink.c3
1 files changed, 1 insertions, 2 deletions
diff --git a/gst/vaapi/gstvaapisink.c b/gst/vaapi/gstvaapisink.c
index cb593d2e..aada7d07 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);