+static gboolean
+empathy_call_window_check_video_cb (gpointer data)
+{
+ EmpathyCallWindow *self = data;
+
+ if (self->priv->got_video)
+ {
+ self->priv->got_video = FALSE;
+ return TRUE;
+ }
+
+ /* No video in the last N seconds, display the remote avatar */
+ empathy_call_window_show_video_output (self, FALSE);
+
+ return TRUE;
+}
+
+/* Called from the streaming thread */
+static gboolean
+empathy_call_window_video_probe_cb (GstPad *pad,
+ GstMiniObject *mini_obj,
+ EmpathyCallWindow *self)
+{
+ if (G_UNLIKELY (!self->priv->got_video))
+ {
+ /* show the remote video */
+ g_idle_add_full (G_PRIORITY_DEFAULT_IDLE,
+ emapthy_call_window_show_video_output_cb,
+ g_object_ref (self), g_object_unref);
+
+ self->priv->got_video = TRUE;
+ }
+
+ return TRUE;
+}
+