summaryrefslogtreecommitdiff
path: root/gst/vaapi/gstvaapisink.c
diff options
context:
space:
mode:
authorSreerenj Balachandran <sreerenj.balachandran@intel.com>2014-11-27 11:14:50 +0200
committerSreerenj Balachandran <sreerenj.balachandran@intel.com>2014-11-27 11:20:10 +0200
commit267465d7d0824753c5e54a4802d8c51546b546f3 (patch)
tree5dce6dab9ee3bdee030c40a327376ca893dd63a2 /gst/vaapi/gstvaapisink.c
parent88b481e5306177f4cde2d9787beda89735c06a20 (diff)
downloadgst-vaapi-267465d7d0824753c5e54a4802d8c51546b546f3.tar.gz
vaapisink: Protect the X11 API invokations with proper locking
https://bugzilla.gnome.org/show_bug.cgi?id=739808
Diffstat (limited to 'gst/vaapi/gstvaapisink.c')
-rw-r--r--gst/vaapi/gstvaapisink.c4
1 files changed, 4 insertions, 0 deletions
diff --git a/gst/vaapi/gstvaapisink.c b/gst/vaapi/gstvaapisink.c
index a1e16163..dbd8388d 100644
--- a/gst/vaapi/gstvaapisink.c
+++ b/gst/vaapi/gstvaapisink.c
@@ -456,9 +456,11 @@ gst_vaapisink_x11_pre_start_event_thread (GstVaapiSink * sink)
ExposureMask | StructureNotifyMask);
if (sink->window) {
+ gst_vaapi_display_lock (GST_VAAPI_DISPLAY (display));
XSelectInput (gst_vaapi_display_x11_get_display (display),
gst_vaapi_window_x11_get_xid (GST_VAAPI_WINDOW_X11 (sink->window)),
x11_event_mask);
+ gst_vaapi_display_unlock (GST_VAAPI_DISPLAY (display));
}
return TRUE;
}
@@ -470,8 +472,10 @@ gst_vaapisink_x11_pre_stop_event_thread (GstVaapiSink * sink)
GST_VAAPI_DISPLAY_X11 (GST_VAAPI_PLUGIN_BASE_DISPLAY (sink));
if (sink->window) {
+ gst_vaapi_display_lock (GST_VAAPI_DISPLAY (display));
XSelectInput (gst_vaapi_display_x11_get_display (display),
gst_vaapi_window_x11_get_xid (GST_VAAPI_WINDOW_X11 (sink->window)), 0);
+ gst_vaapi_display_unlock (GST_VAAPI_DISPLAY (display));
}
return TRUE;
}