GNOME Bugzilla – Bug 539063
GhostPad constructor is broken
Last modified: 2011-01-16 23:37:44 UTC
Please describe the problem: Creating a ghost pad from a target pad or from a direction does not work. Steps to reproduce: For example: Glib::RefPtr<Gst::Pad> sink_pad = audio_convert->get_static_pad ("sink"); (1) Glib::RefPtr<Gst::Element> audio_convert = Gst::ElementFactory::create ("audioconvert", "audioconvert"); (2) Glib::RefPtr<Gst::GhostPad> ghost_pad = Gst::GhostPad::create ("sink", Gst::PAD_SINK); Actual results: (1) (lt-mediaplayer:8954): glibmm-WARNING **: Glib::ConstructParams::ConstructParams(): object class "gtkmm__GstGhostPad" has no property named "target" (2) (lt-mediaplayer:10732): glibmm-WARNING **: Glib::ConstructParams::ConstructParams(): object class "gtkmm__GstGhostPad" has no property named "dir" In either case, the ghost pad is not properly functional (has no direction). Expected results: I would expect a ghost pad with the given target or direction to be created. Does this happen every time? Yes. Other information: From José Alburquerque: "What you're getting above is a warning related to how the Gst::GhostPad::create() methods have been wrapped and an interaction between the parameter collection for the Gst::GhostPad construction in its super class's Gst::Pad constructor and the gstreamer object internal properties. I wont bore you with all the details, however, suffice it to say that thanks to your reporting I think this can be quickly fixed."
Created attachment 113018 [details] Example program to reproduce the problem. Put this in gstreamermm/examples/media_player_gtkmm/ and compile and run to reproduce the problem.
As I said in the list thread, the warnings seem to be pertinent but I can't confirm the error. Here's what I said: This one I think should be addressed by comparing C and C++ functionality. I would encourage you to test both C and C++ versions (ignoring the warning above for now) and see if there is a difference in functionality. If you find anything, I'll be happy to look into it, but I'd really appreciate it if, as already described, you could file it in bugzilla if you find a bug. Please be sure to post both the C and the C++ examples (as brief as possible) with the report. Really appreciate you testing things out.
This is caused by gstreamer bug #539108.
The following commit fixes this bug. Sorry for the terrible delay in fixing it and thanks for taking the time to report it: 2009-01-12 José Alburquerque <jaalburqu@svn.gnome.org> * gstreamer/gstreamermm.h: * gstreamer/src/Makefile_list_of_hg.am_fragment: * gstreamer/src/ghostpad.ccg: * gstreamer/src/ghostpad.hg: Re-added ghostpad.hg (Bug #539108 has been resolved). * tests/Makefile.am: Re-added ghost pad test. Fixes Bug #539063 (Marcus Brinkmann).