adaptivedemux: Release the manifest mutex before waiting for a download

Otherwise we will hurt parallel downloads in the best case, and often cause
deadlocks.
This commit is contained in:
Sebastian Dröge 2015-06-04 12:36:41 +02:00
parent 1ba8f82b94
commit fc67e1db8b

View file

@ -2040,12 +2040,13 @@ gst_adaptive_demux_stream_download_loop (GstAdaptiveDemuxStream * stream)
if (live) {
gint64 wait_time =
gst_adaptive_demux_stream_get_fragment_waiting_time (demux, stream);
GST_MANIFEST_UNLOCK (demux);
if (wait_time > 0)
gst_adaptive_demux_stream_download_wait (stream, wait_time);
} else {
GST_MANIFEST_UNLOCK (demux);
}
GST_MANIFEST_UNLOCK (demux);
GST_OBJECT_LOCK (demux);
if (demux->cancelled) {
stream->last_ret = GST_FLOW_FLUSHING;