[Bug 701110] videomixer: sinkpads GSList is not protected for multi-threading

GStreamer (bugzilla.gnome.org) bugzilla at gnome.org
Mon Feb 17 11:35:31 PST 2014


https://bugzilla.gnome.org/show_bug.cgi?id=701110
  GStreamer | gst-plugins-good | git

[laucha] <lauchapc87> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |lauchapc87 at gmail.com

--- Comment #3 from [laucha] <lauchapc87 at gmail.com> 2014-02-17 19:55:36 UTC ---
I've seen that the videomixer blows up beacuse the function ptr to the 
function that does the blending is NULL. This pointer was reseted when the caps
are reseted.
I can try to fix the bug if you give me some help :)

I've already made an ugly fix to the videomixer. Basically, if the function's
pointer is NULL I reject the buffer. This produces a green frame on the output
but the pipeline doesn't blow up. But now the pipeline freezes beacuse a
deadlock(I think that is another bug).

The deadlock was produced by the chain function of one sink and the
relase_request_pad on another sink. Here is the sequence of the deadlock:

1) gst_collect_pads_chain function acquires GST_COLLECT_PADS_STREAM_LOCK.
2) gst_videomixer2_release_pad function acquires GST_VIDEO_MIXER2_LOCK.
2 )gst_collect_pads_chain function calls to gst_videomixer2_collected()
function.
3) gst_videomixer2_collected() function tries to acquire GST_VIDEO_MIXER2_LOCK.
4) gst_videomixer2_release_pad() function tries to acquire
GST_COLLECT_PADS_STREAM_LOCK.

So, gst_videomixer2_release_pad waits on COLLECT_PADS_STREAM_LOCK (acquired by
gst_videomixer2_collected) and gst_videomixer2_collected waits on
GST_VIDEO_MIXER2_LOCK(acquired by gst_videomixer2_release_pad).

-- 
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