From: Sebastian Dröge Date: Tue, 1 Dec 2015 17:44:36 +0000 (+0200) Subject: hlsdemux: Always give timestamps if we're discont and don't mark stream discont if... X-Git-Tag: 1.19.3~507^2~7525 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=fac4ed18d45c455e3971b1eb6d09246c7eafe00f;p=platform%2Fupstream%2Fgstreamer.git hlsdemux: Always give timestamps if we're discont and don't mark stream discont if a playlist change was not successful If the stream is discont, we must provide a timestamp in any case. Elements like tsdemux are not going to output anything if we give a NONE timestamp after a discont. Also marking a stream as discont if a playlist change was not successful would lead to the above situation, but in that case we are not required at all to mark the stream discont as we're still at the old playlist. --- diff --git a/ext/hls/gsthlsdemux.c b/ext/hls/gsthlsdemux.c index 13947c04b1..f7632fe62c 100644 --- a/ext/hls/gsthlsdemux.c +++ b/ext/hls/gsthlsdemux.c @@ -667,6 +667,9 @@ gst_hls_demux_update_fragment_info (GstAdaptiveDemuxStream * stream) return GST_FLOW_EOS; } + if (stream->discont) + discont = TRUE; + /* set up our source for download */ if (hlsdemux->reset_pts || discont) { stream->fragment.timestamp = timestamp; @@ -996,7 +999,6 @@ retry_failover_protection: GST_INFO_OBJECT (demux, "Client was on %dbps, max allowed is %dbps, switching" " to bitrate %dbps", old_bandwidth, max_bitrate, new_bandwidth); - stream->discont = TRUE; if (gst_hls_demux_update_playlist (demux, FALSE, NULL)) { gchar *uri; @@ -1013,6 +1015,7 @@ retry_failover_protection: g_free (main_uri); if (changed) *changed = TRUE; + stream->discont = TRUE; } else { GList *failover = NULL;