From 53f9716a258ef4e37c7d6413db5c0cf5118b0f0b Mon Sep 17 00:00:00 2001 From: Edward Hervey Date: Tue, 15 Nov 2005 15:35:44 +0000 Subject: [PATCH] gst/gst.defs: Keep refcount for the message of gst_bus_post() 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 | 9 +++++++++ gst/gst.defs | 4 ++-- gst/gststructure.override | 1 - testsuite/test_message.py | 22 ++++++++++++++-------- 4 files changed, 25 insertions(+), 11 deletions(-) diff --git a/ChangeLog b/ChangeLog index 95ebd0a690..6065881f3b 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,12 @@ +2005-11-15 Edward Hervey + + * 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 * configure.ac: back to HEAD diff --git a/gst/gst.defs b/gst/gst.defs index 6141cc4e82..b508d8509e 100644 --- a/gst/gst.defs +++ b/gst/gst.defs @@ -277,7 +277,7 @@ (c-name "gst_bus_post") (return-type "gboolean") (parameters - '("GstMessage*" "message") + '("GstMessage*" "message" (keep-refcount)) ) ) @@ -3727,7 +3727,7 @@ '("const-gchar*" "name_template") '("GstPadDirection" "direction") '("GstPadPresence" "presence") - '("GstCaps*" "caps") + '("GstCaps*" "caps" (keep-refcount)) ) ) diff --git a/gst/gststructure.override b/gst/gststructure.override index 568275e2e9..883bff11a5 100644 --- a/gst/gststructure.override +++ b/gst/gststructure.override @@ -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; } %% diff --git a/testsuite/test_message.py b/testsuite/test_message.py index 48042ee604..a9fb5f0d68 100644 --- a/testsuite/test_message.py +++ b/testsuite/test_message.py @@ -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__":