From 3a96a951349e51717785605fcb32aecf0b8a96e4 Mon Sep 17 00:00:00 2001 From: Guillaume Desmottes Date: Mon, 11 Jan 2010 14:58:59 +0000 Subject: Wait that the pipeline has been started before enabling camera The v4l2src element doesn't work properly if the pipeline has not been started (#605549). --- src/empathy-call-window.c | 17 ++++++++++------- 1 file changed, 10 insertions(+), 7 deletions(-) (limited to 'src/empathy-call-window.c') diff --git a/src/empathy-call-window.c b/src/empathy-call-window.c index 564d904ca..6b372d78a 100644 --- a/src/empathy-call-window.c +++ b/src/empathy-call-window.c @@ -1231,17 +1231,13 @@ empathy_call_window_constructed (GObject *object) empathy_call_window_setup_avatars (self, priv->handler); empathy_call_window_set_state_connecting (self); - if (empathy_call_handler_has_initial_video (priv->handler)) - { - /* Enable 'send video' buttons and display the preview */ - gtk_toggle_tool_button_set_active ( - GTK_TOGGLE_TOOL_BUTTON (priv->tool_button_camera_on), TRUE); - } - else + if (!empathy_call_handler_has_initial_video (priv->handler)) { gtk_toggle_tool_button_set_active ( GTK_TOGGLE_TOOL_BUTTON (priv->tool_button_camera_off), TRUE); } + /* If call has InitialVideo, the preview will be started once the call has + * been started (start_call()). */ } static void empathy_call_window_dispose (GObject *object); @@ -2060,6 +2056,13 @@ start_call (EmpathyCallWindow *self) priv->call_started = TRUE; empathy_call_handler_start_call (priv->handler); gst_element_set_state (priv->pipeline, GST_STATE_PLAYING); + + if (empathy_call_handler_has_initial_video (priv->handler)) + { + /* Enable 'send video' buttons and display the preview */ + gtk_toggle_tool_button_set_active ( + GTK_TOGGLE_TOOL_BUTTON (priv->tool_button_camera_on), TRUE); + } } static gboolean -- cgit v1.2.3