[cheese/three-point-oh] Performance fix for effect selection
- From: Yuvaraj Pandian <yuvipanda src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [cheese/three-point-oh] Performance fix for effect selection
- Date: Sat, 10 Jul 2010 11:37:49 +0000 (UTC)
commit f31eeabe0069342a917c149b5e5d0eb8605884a1
Author: Yuvaraj Pandian T <yuvipanda gmail com>
Date: Sat Jul 10 17:07:26 2010 +0530
Performance fix for effect selection
libcheese/cheese-camera.c | 16 +++++++++-------
1 files changed, 9 insertions(+), 7 deletions(-)
---
diff --git a/libcheese/cheese-camera.c b/libcheese/cheese-camera.c
index 2296092..48fc67d 100644
--- a/libcheese/cheese-camera.c
+++ b/libcheese/cheese-camera.c
@@ -730,25 +730,27 @@ static void
cheese_camera_change_effect_filter (CheeseCamera *camera, GstElement *new_filter)
{
CheeseCameraPrivate *priv = CHEESE_CAMERA_GET_PRIVATE (camera);
-
- gboolean is_playing = priv->pipeline_is_playing;
gboolean ok;
- cheese_camera_stop (camera);
-
+ g_object_set (G_OBJECT (priv->main_valve), "drop", TRUE, NULL);
+
gst_element_unlink_many (priv->main_valve, priv->effect_filter,
priv->csp_post_effect, NULL);
+ g_object_ref(priv->effect_filter);
gst_bin_remove (GST_BIN (priv->video_display_bin), priv->effect_filter);
+ priv->effect_filter = NULL;
+ g_object_unref(priv->effect_filter);
gst_bin_add (GST_BIN (priv->video_display_bin), new_filter);
ok = gst_element_link_many (priv->main_valve, new_filter,
priv->csp_post_effect, NULL);
- g_return_if_fail (ok);
+ gst_element_set_state (new_filter, GST_STATE_PAUSED);
- if (is_playing)
- cheese_camera_play (camera);
+ g_return_if_fail (ok);
+ g_object_set (G_OBJECT (priv->main_valve), "drop", FALSE, NULL);
+
priv->effect_filter = new_filter;
}
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]