gstreamer_core/libs/gst/controller/gsthelper.c
branchRCL_3
changeset 30 7e817e7e631c
parent 29 567bb019e3e3
--- a/gstreamer_core/libs/gst/controller/gsthelper.c	Tue Aug 31 15:30:33 2010 +0300
+++ b/gstreamer_core/libs/gst/controller/gsthelper.c	Wed Sep 01 12:16:41 2010 +0100
@@ -41,6 +41,8 @@
 #define GST_CAT_DEFAULT controller_debug
 GST_DEBUG_CATEGORY_EXTERN (GST_CAT_DEFAULT);
 
+extern GQuark priv_gst_controller_key;
+
 /**
  * gst_object_control_properties:
  * @object: the object of which some properties should be controlled
@@ -147,10 +149,12 @@
 gboolean
 gst_object_set_controller (GObject * object, GstController * controller)
 {
+  GstController *ctrl;
+
   g_return_val_if_fail (G_IS_OBJECT (object), FALSE);
   g_return_val_if_fail (controller, FALSE);
 
-  if (!g_object_get_qdata (object, priv_gst_controller_key)) {
+  if (!(ctrl = g_object_get_qdata (object, priv_gst_controller_key))) {
     g_object_set_qdata (object, priv_gst_controller_key, controller);
     return (TRUE);
   }
@@ -203,14 +207,12 @@
   GstController *ctrl = NULL;
 
   g_return_val_if_fail (G_IS_OBJECT (object), FALSE);
+  g_return_val_if_fail (GST_CLOCK_TIME_IS_VALID (timestamp), FALSE);
 
   if ((ctrl = g_object_get_qdata (object, priv_gst_controller_key))) {
     return gst_controller_sync_values (ctrl, timestamp);
   }
-  /* this is no failure, its called by elements regardless if there is a
-   * controller assigned or not
-   */
-  return (TRUE);
+  return (FALSE);
 }
 
 /**