From: Edward Hervey Date: Tue, 15 Nov 2005 15:35:44 +0000 (+0000) Subject: gst/gst.defs: Keep refcount for the message of gst_bus_post() X-Git-Tag: 1.19.3~485^2~940 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=53f9716a258ef4e37c7d6413db5c0cf5118b0f0b;p=platform%2Fupstream%2Fgstreamer.git 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 --- diff --git a/ChangeLog b/ChangeLog index 95ebd0a..6065881 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 6141cc4..b508d85 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 568275e..883bff1 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 48042ee..a9fb5f0 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__":