From 4fe62b9b0a31f95c3b5ca43e277544caa0b440e9 Mon Sep 17 00:00:00 2001 From: "J. Oliva" Date: Mon, 23 Feb 2015 20:40:37 +0100 Subject: [PATCH] Clear stale blacklist in getChunkOperation Clear stale blacklist in getChunkOperation before getting next variant. This ensures: 1.- Player resilience to failures, always trying to look for a working playlist that allows player to non stop playback. 2.- High quality blacklisted playlists can be reused in case they go up after a failure. Player always trying to provide the best user experience. --- .../java/com/google/android/exoplayer/hls/HlsChunkSource.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/library/src/main/java/com/google/android/exoplayer/hls/HlsChunkSource.java b/library/src/main/java/com/google/android/exoplayer/hls/HlsChunkSource.java index 3a412d6956..a38d87c8c9 100644 --- a/library/src/main/java/com/google/android/exoplayer/hls/HlsChunkSource.java +++ b/library/src/main/java/com/google/android/exoplayer/hls/HlsChunkSource.java @@ -258,6 +258,7 @@ public class HlsChunkSource { if (adaptiveMode == ADAPTIVE_MODE_NONE) { // Do nothing. } else { + clearStaleBlacklistedPlaylists(); nextVariantIndex = getNextVariantIndex(previousTsChunk, playbackPositionUs); switchingVariant = nextVariantIndex != variantIndex; switchingVariantSpliced = switchingVariant && adaptiveMode == ADAPTIVE_MODE_SPLICE; @@ -372,7 +373,6 @@ public class HlsChunkSource { MediaPlaylistChunk playlistChunk = (MediaPlaylistChunk) chunk; mediaPlaylistBlacklistFlags[playlistChunk.variantIndex] = true; mediaPlaylistBlacklistedTimeMs[playlistChunk.variantIndex] = SystemClock.elapsedRealtime(); - clearStaleBlacklistedPlaylists(); if (!allPlaylistsBlacklisted()) { // We've handled the 404/410 by blacklisting the playlist. Log.w(TAG, "Blacklisted playlist (" + responseCode + "): "