After an evaluation, GNOME has moved from Bugzilla to GitLab. Learn more about GitLab.
No new issues can be reported in GNOME Bugzilla anymore.
To report an issue in a GNOME project, go to GNOME GitLab.
Do not go to GNOME Gitlab for: Bluefish, Doxygen, GnuCash, GStreamer, java-gnome, LDTP, NetworkManager, Tomboy.
Bug 525532 - [fakesink/fakesrc/identity] Uses GObject marshallers for marshalling GstBuffer
[fakesink/fakesrc/identity] Uses GObject marshallers for marshalling GstBuffer
Status: RESOLVED FIXED
Product: GStreamer
Classification: Platform
Component: gstreamer (core)
git master
Other Linux
: Normal critical
: 0.10.20
Assigned To: GStreamer Maintainers
GStreamer Maintainers
Depends on:
Blocks:
 
 
Reported: 2008-04-01 12:52 UTC by Sebastian Dröge (slomo)
Modified: 2008-05-13 12:53 UTC
See Also:
GNOME target: ---
GNOME version: ---



Description Sebastian Dröge (slomo) 2008-04-01 12:52:08 UTC
Hi,
fakesink/fakesrc/identity currently uses the gst_marshal_VOID__OBJECT_OBJECT marshaller for marshalling "void (GstBuffer *, GstPad *)".

As GstBuffer is a GstMiniObject and the OBJECT marshallers as created by glib-genmarshall are expecting GObject derived types this is not correct. It only works and causes no assertions because gstmarshal.c is compiled with G_ENABLE_DEBUG.



So, what needs to be done is either private VOID:MINIOBJECT,OBJECT marshaller or custom marshallers in gstmarshal.c for this.

I guess we're using OBJECT marshallers for GstMiniObjects at other places too.
Comment 1 Sebastian Dröge (slomo) 2008-04-01 18:34:27 UTC
Or we could add our own gst-genmarshal that is a fork of glib-genmarshal + mini object support ;)
Comment 2 Tim-Philipp Müller 2008-05-13 11:29:35 UTC
I think we should just use POINTER_OBJECT here instead.

I don't really see the point in special mini object support, since it's not needed technically and doesn't really add any value whatsoever (and we still specify the GType separately anyway, presumably for future introspection purposes(?)).

Comment 3 Sebastian Dröge (slomo) 2008-05-13 12:53:46 UTC
2008-05-13  Sebastian Dröge  <slomo@circular-chaos.org>

        * plugins/elements/gstfakesink.c:
        (marshal_VOID__MINIOBJECT_OBJECT), (gst_fake_sink_class_init):
        * plugins/elements/gstfakesrc.c: (marshal_VOID__MINIOBJECT_OBJECT),
        (gst_fake_src_class_init):
        Use custom marshalers that take GstMiniObject as first parameter.
        Using OBJECT as parameter while a GstMiniObject is given will lead
        to assertions if built with G_ENABLE_DEBUG. Fixes bug #525532.