[Bug 642174] Playbin2 cannot work with non-raw custom sinks

GStreamer (bugzilla.gnome.org) bugzilla at gnome.org
Fri Feb 18 04:03:02 PST 2011


https://bugzilla.gnome.org/show_bug.cgi?id=642174
  GStreamer | gst-plugins-base | 0.10.31

Sebastian Dröge <slomo> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|REOPENED                    |RESOLVED
         Resolution|                            |FIXED

--- Comment #16 from Sebastian Dröge <slomo at circular-chaos.org> 2011-02-18 12:02:57 UTC ---
(In reply to comment #15)
> (In reply to comment #14)
> > Not always, ....
> 
> If autoplug_continue_cb() and activate_group() are executed on separate
> threads, then using recursive mutex is not different from normal mutex...
> doesn't this still cause the probelm as in comment #12 ?

Sometimes they are executed from the same thread and sometimes they're not. If
they are executed from the same thread the recursive mutex will prevent the
deadlock, if they are executed from different threads the recursive mutex will
work like every other mutex.

> > Look at the code that calls group_set_locked_state_unlocked() in
> > activate_group(). That has to be called after setting the state and needs to
> > have the group and playbin lock.
> 
> I thought that changing the order of {set-state, allow-state-change, unlock}
> into {allow-state-change, unlock, set-state} would be OK.
> (I thought that set-state itself must not necessarily be protected by the
> lock.)

The unlock must happen after the set_state. The mutex is not necessary for the
set_state but it should only be released after the group is completely
activated to prevent simultanous group changes.

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