When hlsdemux downloads next fragments, it will change source's state from PAUSE to READY, then change its uri, and change state back from READY to PAUSE. That state change is catched in WebKitWebSourceGStreamer::webKitWebSrcChangeState(). That sequence of events can happen: 1) pause->ready state change, priv->stopID is set to an idle cb ID that will call webKitWebSrcStop in main thread. 2) ready->pause state change, priv->startID is set to an idle cb ID that will call webKitWebSrcStart in main thread. 3) the main thread runs webKitWebSrcStop() that calls removeTimeoutSources() which remove priv->startID source. And now webKitWebSrcStart will never be called, so it won't download anything. So that happens when webkitwebsrc's state transition pause->ready->pause quickly.
Note that shen souphttpsrc is used, it works correctly.
Created attachment 241179 [details] Proposed patch I'm not sure what's the procedure to properly propose patches, but this one fix the issue for me.
You can find the contributor guidelines there: http://www.webkit.org/coding/contributing.html
Created attachment 243145 [details] patch Patch updated to latest webkit master, with changelog. Is that all needed to get it reviewed?
Comment on attachment 243145 [details] patch Thanks!
Comment on attachment 243145 [details] patch Clearing flags on attachment: 243145 Committed r177279: <http://trac.webkit.org/changeset/177279>
All reviewed patches have been landed. Closing bug.