gst/gst.defs: Keep refcount for the message of gst_bus_post()
authorEdward Hervey <bilboed@bilboed.com>
Tue, 15 Nov 2005 15:35:44 +0000 (15:35 +0000)
committerEdward Hervey <bilboed@bilboed.com>
Tue, 15 Nov 2005 15:35:44 +0000 (15:35 +0000)
Original commit message from CVS:
* gst/gst.defs:
Keep refcount for the message of gst_bus_post()
* gst/gststructure.override:
Don't free a structure on dealloc (the parent does that)
* testsuite/test_message.py:
Proper testing of bus functionnality with a mainloop

ChangeLog
gst/gst.defs
gst/gststructure.override
testsuite/test_message.py

index 95ebd0a..6065881 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,12 @@
+2005-11-15  Edward Hervey  <edward@fluendo.com>
+
+       * gst/gst.defs:
+       Keep refcount for the message of gst_bus_post()
+       * gst/gststructure.override:
+       Don't free a structure on dealloc (the parent does that)
+       * testsuite/test_message.py:
+       Proper testing of bus functionnality with a mainloop
+
 2005-11-11  Thomas Vander Stichele  <thomas at apestaart dot org>
 
        * configure.ac: back to HEAD
index 6141cc4..b508d85 100644 (file)
   (c-name "gst_bus_post")
   (return-type "gboolean")
   (parameters
-    '("GstMessage*" "message")
+    '("GstMessage*" "message" (keep-refcount))
   )
 )
 
     '("const-gchar*" "name_template")
     '("GstPadDirection" "direction")
     '("GstPadPresence" "presence")
-    '("GstCaps*" "caps")
+    '("GstCaps*" "caps" (keep-refcount))
   )
 )
 
index 568275e..883bff1 100644 (file)
@@ -55,7 +55,6 @@ _wrap_gst_structure_new(PyGBoxed *self, PyObject *args, PyObject *kwargs)
                PyErr_SetString(PyExc_RuntimeError, "could not create GstStructure object");
                return -1;
        }
-       self->free_on_dealloc = TRUE;
        return 0;
 }
 %%
index 48042ee..a9fb5f0 100644 (file)
@@ -30,20 +30,26 @@ class NewTest(TestCase):
         m = gst.message_new_eos(b)
         gst.info("got message : %s" % m)
 
-    def _testApplication(self):
+    def message_application_cb(self, bus, message):
+        print "got message"
+        self.got_message = True
+        self.loop.quit()
+
+    def testApplication(self):
+        self.loop = gobject.MainLoop()
         gst.info("creating new pipeline")
         bin = gst.Pipeline()
         bus = bin.get_bus()
         bus.add_signal_watch()
-        got_message = False
-        def message_application_cb(bus, message):
-            got_message = True
-        bus.connect('message::application', message_application_cb)
+        self.got_message = False
+        bus.connect('message::application', self.message_application_cb)
 
-        gst.info("creating new application message from that bin")
-        msg = gst.message_new_application(bin, gst.Structure('foo'))
+        struc = gst.Structure("foo")
+        msg = gst.message_new_application(bin, struc)
         bus.post(msg)
-        self.failUnless(got_message == True)
+        self.loop.run()
+        bus.remove_signal_watch()
+        self.failUnless(self.got_message == True)
         self.gccollect()
 
 if __name__ == "__main__":