[Bug 684809] proxypad don't hold a ref to their internal pad while streaming through it

GStreamer (bugzilla.gnome.org) bugzilla at gnome.org
Wed Sep 26 09:32:57 PDT 2012


https://bugzilla.gnome.org/show_bug.cgi?id=684809
  GStreamer | gstreamer (core) | 1.0.0

--- Comment #7 from Olivier Crete (Tester) <olivier.crete at ocrete.ca> 2012-09-26 16:32:51 UTC ---
It's not probe specific, I can reproduce it without a probe.. just add some
another element/pad after and remove the ghostpad while the thread is blocked
there.

For some reason, I couldn't reproduce the problem with a regular element (like
identity), I only see it with ghostpads.

GstPad takes a ref before calling gst_pad_chain from a connected pad. So we
take one ref for ever pair of connected pads.

My usecase is that when rtpbin receives a BYE, it removes its src pad, then in
Farstream I remove the decoder and associated ghostpad, then it crashes. This
happens on two separate threads, but I can reproduce it relatively often as the
rtpbin->sink thread spends almost all of it's time blocked in the sink in the
ideal case. Also, the Farstream shutdown code uses the same codepath.

I'm not a big fan of taking a ref inside gst_pad_push(), I think everyone who
calls a method on a GObject should make sure it holds a ref to it until the
function returns.

-- 
Configure bugmail: https://bugzilla.gnome.org/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the QA contact for the bug.
You are the assignee for the bug.


More information about the gstreamer-bugs mailing list