[longomatch] Try to get the sink element from the message emitter



commit 89d67104e9de144f3e84c690e09bea34135fd573
Author: Andoni Morales Alastruey <ylatuya gmail com>
Date:   Sun Jul 25 20:22:46 2010 +0200

    Try to get the sink element from the message emitter
    
    set_window_id might not be called from the GUI thread, so
    bwv_update_interfaces will set sink->xoverlay=NULL. In this case
    we try to get the xoverlay from the message emitter

 libcesarplayer/src/bacon-video-widget-gst-0.10.c |    6 ++++++
 1 files changed, 6 insertions(+), 0 deletions(-)
---
diff --git a/libcesarplayer/src/bacon-video-widget-gst-0.10.c b/libcesarplayer/src/bacon-video-widget-gst-0.10.c
index a2695e4..24bafc9 100644
--- a/libcesarplayer/src/bacon-video-widget-gst-0.10.c
+++ b/libcesarplayer/src/bacon-video-widget-gst-0.10.c
@@ -5356,6 +5356,12 @@ bvw_element_msg_sync (GstBus * bus, GstMessage * msg, gpointer data)
     g_mutex_lock (bvw->priv->lock);
     bvw_update_interface_implementations (bvw);
     g_mutex_unlock (bvw->priv->lock);
+    
+    if (bvw->priv->xoverlay == NULL) {
+      GstObject *sender = GST_MESSAGE_SRC (msg);
+      if (sender && GST_IS_X_OVERLAY (sender))
+        bvw->priv->xoverlay = GST_X_OVERLAY (gst_object_ref (sender));
+    }
 
     g_return_if_fail (bvw->priv->xoverlay != NULL);
     g_return_if_fail (bvw->priv->video_window != NULL);



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]