summaryrefslogtreecommitdiff
path: root/ext/hls
diff options
context:
space:
mode:
authorThiago Santos <ts.santos@sisa.samsung.com>2014-04-25 12:55:54 -0300
committerThiago Santos <ts.santos@sisa.samsung.com>2014-04-29 18:49:15 -0300
commit2b73e86881881a78c6e40ed65e5ae6c5e1250e12 (patch)
tree76e7be0ec953df32b123c85381dc26eb3ee163ca /ext/hls
parent60eec1443a65d1749fd9ca87afe6dc71b8e78ce4 (diff)
downloadgstreamer-plugins-bad-2b73e86881881a78c6e40ed65e5ae6c5e1250e12.tar.gz
hlsdemux: properly stop tasks by stopping fragment download
Issue a signal to the fragment download cond to stop the task earlier
Diffstat (limited to 'ext/hls')
-rw-r--r--ext/hls/gsthlsdemux.c5
1 files changed, 4 insertions, 1 deletions
diff --git a/ext/hls/gsthlsdemux.c b/ext/hls/gsthlsdemux.c
index 23e07e600..86db8bd5b 100644
--- a/ext/hls/gsthlsdemux.c
+++ b/ext/hls/gsthlsdemux.c
@@ -675,6 +675,9 @@ gst_hls_demux_pause_tasks (GstHLSDemux * demux)
demux->stop_stream_task = TRUE;
g_cond_signal (&demux->download_cond);
g_mutex_unlock (&demux->download_lock);
+ g_mutex_lock (&demux->fragment_download_lock);
+ g_cond_signal (&demux->fragment_download_cond);
+ g_mutex_unlock (&demux->fragment_download_lock);
gst_task_pause (demux->stream_task);
}
}
@@ -1839,8 +1842,8 @@ gst_hls_demux_get_next_fragment (GstHLSDemux * demux,
/* wait for the fragment to be completely downloaded */
g_cond_wait (&demux->fragment_download_cond, &demux->fragment_download_lock);
- g_mutex_unlock (&demux->fragment_download_lock);
gst_element_set_state (demux->src, GST_STATE_READY);
+ g_mutex_unlock (&demux->fragment_download_lock);
return TRUE;
}