]> git.0d.be Git - empathy.git/commitdiff
Reset all the necessary elements when switching cameras
authorEmilio Pozuelo Monfort <emilio.pozuelo@collabora.co.uk>
Thu, 18 Aug 2011 17:14:27 +0000 (18:14 +0100)
committerEmilio Pozuelo Monfort <emilio.pozuelo@collabora.co.uk>
Fri, 19 Aug 2011 10:11:02 +0000 (11:11 +0100)
https://bugzilla.gnome.org/show_bug.cgi?id=656579

src/empathy-camera-menu.c
src/empathy-video-src.c

index 6a7d20c15e47e81b3a1599becf0487b5cb601d81..a5725387291cdb5d81973fdc17a81798450831bd 100644 (file)
@@ -140,7 +140,9 @@ empathy_camera_menu_activate_cb (GtkAction *action,
 
   device = gtk_action_get_name (action);
 
+  empathy_call_window_play_camera (self->priv->window, FALSE);
   empathy_video_src_change_device (video, device);
+  empathy_call_window_play_camera (self->priv->window, TRUE);
 }
 
 static void
index ceb344215c99fb3dd7335056cb6f84a499b809f0..25d257f3d22e785e26733e729c8ad264b96025fe 100644 (file)
@@ -370,9 +370,9 @@ empathy_video_src_change_device (EmpathyGstVideoSrc *self,
 
   gst_element_get_state (priv->src, &state, NULL, 0);
 
-  gst_element_set_state (priv->src, GST_STATE_NULL);
+  g_return_if_fail (state == GST_STATE_NULL);
+
   g_object_set (priv->src, "device", device, NULL);
-  gst_element_set_state (priv->src, state);
 }
 
 gchar *