summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorStefan Kost <ensonic@users.sf.net>2010-04-15 12:59:53 +0300
committerStefan Kost <ensonic@users.sf.net>2010-04-16 15:52:26 +0300
commit6c51803dc8823f764effffeb7cb99784a6684d0b (patch)
tree144641cb928762b92b19ce55c799a0f84ba4f2fb
parent656573757e0f75ec13f453ca7b8a8dfa154334ae (diff)
x(v)imagesink: gracefully handle ximagesink>xwindow == NULL
Expose could be called before we have set the xwindow. Handle this gracefully like we do in image_put. Fixes #615789
-rw-r--r--sys/ximage/ximagesink.c5
-rw-r--r--sys/xvimage/xvimagesink.c5
2 files changed, 8 insertions, 2 deletions
diff --git a/sys/ximage/ximagesink.c b/sys/ximage/ximagesink.c
index c6931acd8..e7f489298 100644
--- a/sys/ximage/ximagesink.c
+++ b/sys/ximage/ximagesink.c
@@ -922,10 +922,13 @@ gst_ximagesink_xwindow_update_geometry (GstXImageSink * ximagesink)
XWindowAttributes attr;
g_return_if_fail (GST_IS_XIMAGESINK (ximagesink));
- g_return_if_fail (ximagesink->xwindow != NULL);
/* Update the window geometry */
g_mutex_lock (ximagesink->x_lock);
+ if (G_UNLIKELY (ximagesink->xwindow == NULL)) {
+ g_mutex_unlock (ximagesink->x_lock);
+ return;
+ }
XGetWindowAttributes (ximagesink->xcontext->disp,
ximagesink->xwindow->win, &attr);
diff --git a/sys/xvimage/xvimagesink.c b/sys/xvimage/xvimagesink.c
index 8298a9a86..f2af4953f 100644
--- a/sys/xvimage/xvimagesink.c
+++ b/sys/xvimage/xvimagesink.c
@@ -1048,10 +1048,13 @@ gst_xvimagesink_xwindow_update_geometry (GstXvImageSink * xvimagesink)
XWindowAttributes attr;
g_return_if_fail (GST_IS_XVIMAGESINK (xvimagesink));
- g_return_if_fail (xvimagesink->xwindow != NULL);
/* Update the window geometry */
g_mutex_lock (xvimagesink->x_lock);
+ if (G_UNLIKELY (xvimagesink->xwindow == NULL)) {
+ g_mutex_unlock (xvimagesink->x_lock);
+ return;
+ }
XGetWindowAttributes (xvimagesink->xcontext->disp,
xvimagesink->xwindow->win, &attr);