From 2b73e86881881a78c6e40ed65e5ae6c5e1250e12 Mon Sep 17 00:00:00 2001 From: Thiago Santos Date: Fri, 25 Apr 2014 12:55:54 -0300 Subject: [PATCH] hlsdemux: properly stop tasks by stopping fragment download Issue a signal to the fragment download cond to stop the task earlier --- ext/hls/gsthlsdemux.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/ext/hls/gsthlsdemux.c b/ext/hls/gsthlsdemux.c index 23e07e600c..86db8bd5be 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; }