--- 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);
}
/**