sink GstObject, much like GtkObject
authorJohan Dahlin <johan@gnome.org>
Tue, 23 Nov 2004 12:33:58 +0000 (12:33 +0000)
committerJohan Dahlin <johan@gnome.org>
Tue, 23 Nov 2004 12:33:58 +0000 (12:33 +0000)
Original commit message from CVS:
sink GstObject, much like GtkObject

ChangeLog
gst/gstmodule.c

index 539f97f..62a6fc1 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,9 @@
 2004-11-23  Johan Dahlin  <johan@gnome.org>
 
+       * gst/gstmodule.c: sink GstObject, much like GtkObject
+
+2004-11-23  Johan Dahlin  <johan@gnome.org>
+
        * examples/gst/play.py:
        * gst/gst-types.defs:
        * gst/gst.override:
index 7db75db..4359f56 100644 (file)
@@ -62,6 +62,15 @@ python_do_pending_calls(gpointer data)
     return TRUE;
 }
 
+static void
+sink_gstobject(GObject *object)
+{
+     if (GST_OBJECT_FLOATING(object)) {
+         g_object_ref(object);
+         gst_object_sink(GST_OBJECT(object));
+     }
+}
+
 DL_EXPORT(void)
 init_gst (void)
 {
@@ -71,6 +80,7 @@ init_gst (void)
      char **argv;
 
      init_pygobject ();
+
      /* pull in arguments */
      av = PySys_GetObject ("argv");
      if (av != NULL) {
@@ -103,6 +113,8 @@ init_gst (void)
          g_free (argv);
      }
 
+     pygobject_register_sinkfunc(GST_TYPE_OBJECT, sink_gstobject);
+
      m = Py_InitModule ("_gst", pygst_functions);
      d = PyModule_GetDict (m);