[Webkit-unassigned] [Bug 120482] [GStreamer] - Playing 2 mpeg2ts videos from Apache Server causes lockup

bugzilla-daemon at webkit.org bugzilla-daemon at webkit.org
Tue Oct 1 07:58:42 PDT 2013


--- Comment #11 from Lori Anderson <lori at rkymtnhi.com>  2013-10-01 07:57:38 PST ---
(In reply to comment #10)
> Setting async-handling shouldn't be needed I think, looks more like a workaround to me.

I agree it is a workaround.  The problem is this problem only occurs in WebKit using an HTTP source which is not the webkit source.  The reason the source is needed is explained above.  A simple gstreamer program with the same pipeline does not exhibit this problem.  When using the non-webkit source, a Queue2 element is included in the pipeline. A queue2 element is not included when you are using the webkit source because it is an appsrc and has an internal queue built in.  The problem with Queue2 is that it causes many state transitions between playing and paused to handle the min and max thresholds of buffering.  Some kind of deadly embrace happens within updateStates().  The "deadly embrace" is that pipeline never transitions into paused and although the buffering reaches %100 it never restarts the pipeline to playing because of the logic in updateStates().  

I believe the proper fix would require some extensive changes to management of the pipeline state, waiting for async state transitions to occur and mutex control over threads setting pipeline state.       
> Which GStreamer version are you using?

Tip of GStreamer development branch.

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

More information about the webkit-unassigned mailing list