aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/empathy-call-window.c9
1 files changed, 5 insertions, 4 deletions
diff --git a/src/empathy-call-window.c b/src/empathy-call-window.c
index 565b9edca..10333d6c3 100644
--- a/src/empathy-call-window.c
+++ b/src/empathy-call-window.c
@@ -1082,9 +1082,9 @@ create_video_preview (EmpathyCallWindow *self)
priv->video_preview_sink = gst_element_factory_make ("cluttersink", NULL);
if (priv->video_preview_sink == NULL)
- g_error ("Missing cluttersink");
- else
- g_object_set (priv->video_preview_sink, "texture", preview, NULL);
+ g_error ("Missing cluttersink, check your clutter-gst installation");
+ g_object_set (priv->video_preview_sink, "texture", preview, NULL);
+ g_object_add_weak_pointer (G_OBJECT (priv->video_preview_sink), (gpointer) &priv->video_preview_sink);
/* Add a little offset to the video preview */
layout = clutter_bin_layout_new (CLUTTER_BIN_ALIGNMENT_CENTER,
@@ -3626,7 +3626,8 @@ empathy_call_window_bus_message (GstBus *bus, GstMessage *message,
start_call (self);
}
}
- if (GST_MESSAGE_SRC (message) == GST_OBJECT (priv->video_preview_sink))
+ if (priv->video_preview_sink != NULL &&
+ GST_MESSAGE_SRC (message) == GST_OBJECT (priv->video_preview_sink))
{
gst_message_parse_state_changed (message, NULL, &newstate,
&pending);