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.
This commit is contained in:
Sebastian Dröge 2015-12-01 19:44:36 +02:00
parent b79cfc68cb
commit fac4ed18d4

View file

@ -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;