From 952275ad9952a32101fc6f6ed0a29ec7d2140d0e Mon Sep 17 00:00:00 2001 From: Jan Schmidt Date: Sun, 8 Nov 2015 01:34:30 +1100 Subject: [PATCH] hlsdemux: When switching bitrate variants, don't jump back Don't jump backward to 3 files from the end of the playlist when switching variants - it just means we downloaded fragments fast and caught up to the end of the playlist. Disable that by treating a variant switch as a playlist update, not a restart due to a seek or so. --- 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 e0562a9..516934d 100644 --- a/ext/hls/gsthlsdemux.c +++ b/ext/hls/gsthlsdemux.c @@ -943,6 +943,9 @@ retry: target_pos = MAX (target_pos, demux->client->sequence_position); } + GST_LOG_OBJECT (demux, "Looking for sequence position %" + GST_TIME_FORMAT " in updated playlist", GST_TIME_ARGS (target_pos)); + current_pos = 0; for (walk = demux->client->current->files; walk; walk = walk->next) { GstM3U8MediaFile *file = walk->data; @@ -1002,7 +1005,7 @@ 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); - if (gst_hls_demux_update_playlist (demux, FALSE, NULL)) { + if (gst_hls_demux_update_playlist (demux, TRUE, NULL)) { gchar *uri; gchar *main_uri; uri = gst_m3u8_client_get_current_uri (demux->client); -- 2.7.4