summaryrefslogtreecommitdiff
path: root/ext/hls
diff options
context:
space:
mode:
authorSebastian Dröge <sebastian@centricular.com>2014-03-26 07:22:54 +0100
committerSebastian Dröge <sebastian@centricular.com>2014-03-29 10:33:45 +0100
commitcad284e8432ce65a597ffde580cedfa93f07c5bc (patch)
tree8a3b20c58a8d57ee04171fffba0ecedb04915103 /ext/hls
parent91ec00a0c0925cf7d7b45f6a6cac2451f27d449c (diff)
downloadgstreamer-plugins-bad-cad284e8432ce65a597ffde580cedfa93f07c5bc.tar.gz
hlsdemux: Send flush start event before waiting for the tasks to finish
Otherwise we'll wait until buffers are completely processed downstream, which might take quite some time.
Diffstat (limited to 'ext/hls')
-rw-r--r--ext/hls/gsthlsdemux.c10
1 files changed, 5 insertions, 5 deletions
diff --git a/ext/hls/gsthlsdemux.c b/ext/hls/gsthlsdemux.c
index 2ce7c2742..eab3657bc 100644
--- a/ext/hls/gsthlsdemux.c
+++ b/ext/hls/gsthlsdemux.c
@@ -366,6 +366,11 @@ gst_hls_demux_src_event (GstPad * pad, GstObject * parent, GstEvent * event)
" stop: %" GST_TIME_FORMAT, rate, GST_TIME_ARGS (start),
GST_TIME_ARGS (stop));
+ if (flags & GST_SEEK_FLAG_FLUSH) {
+ GST_DEBUG_OBJECT (demux, "sending flush start");
+ gst_pad_push_event (demux->srcpad, gst_event_new_flush_start ());
+ }
+
gst_hls_demux_pause_tasks (demux);
/* wait for streaming to finish */
@@ -433,11 +438,6 @@ gst_hls_demux_src_event (GstPad * pad, GstObject * parent, GstEvent * event)
current_sequence++;
}
- if (flags & GST_SEEK_FLAG_FLUSH) {
- GST_DEBUG_OBJECT (demux, "sending flush start");
- gst_pad_push_event (demux->srcpad, gst_event_new_flush_start ());
- }
-
GST_M3U8_CLIENT_LOCK (demux->client);
GST_DEBUG_OBJECT (demux, "seeking to sequence %u",
(guint) current_sequence);