remove keep alive check for updating primary url to avoid redundant playlist loading

This commit is contained in:
yqritc 2017-09-21 14:18:59 +09:00
parent ff2ece56dd
commit cac16f1647

View File

@ -112,11 +112,6 @@ public final class HlsPlaylistTracker implements Loader.Callback<ParsingLoadable
* which an unchanging playlist is considered stuck. * which an unchanging playlist is considered stuck.
*/ */
private static final double PLAYLIST_STUCK_TARGET_DURATION_COEFFICIENT = 3.5; private static final double PLAYLIST_STUCK_TARGET_DURATION_COEFFICIENT = 3.5;
/**
* The minimum number of milliseconds that a url is kept as primary url, if no
* {@link #getPlaylistSnapshot} call is made for that url.
*/
private static final long PRIMARY_URL_KEEPALIVE_MS = 15000;
private final Uri initialPlaylistUri; private final Uri initialPlaylistUri;
private final HlsDataSourceFactory dataSourceFactory; private final HlsDataSourceFactory dataSourceFactory;
@ -205,7 +200,7 @@ public final class HlsPlaylistTracker implements Loader.Callback<ParsingLoadable
*/ */
public HlsMediaPlaylist getPlaylistSnapshot(HlsUrl url) { public HlsMediaPlaylist getPlaylistSnapshot(HlsUrl url) {
HlsMediaPlaylist snapshot = playlistBundles.get(url).getPlaylistSnapshot(); HlsMediaPlaylist snapshot = playlistBundles.get(url).getPlaylistSnapshot();
if (snapshot != null) { if (url != primaryHlsUrl && snapshot != null ) {
maybeSetPrimaryUrl(url); maybeSetPrimaryUrl(url);
} }
return snapshot; return snapshot;
@ -349,13 +344,9 @@ public final class HlsPlaylistTracker implements Loader.Callback<ParsingLoadable
// the last primary snapshot contains an end tag. // the last primary snapshot contains an end tag.
return; return;
} }
MediaPlaylistBundle currentPrimaryBundle = playlistBundles.get(primaryHlsUrl);
long primarySnapshotAccessAgeMs = primaryHlsUrl = url;
SystemClock.elapsedRealtime() - currentPrimaryBundle.lastSnapshotAccessTimeMs; playlistBundles.get(primaryHlsUrl).loadPlaylist();
if (primarySnapshotAccessAgeMs > PRIMARY_URL_KEEPALIVE_MS) {
primaryHlsUrl = url;
playlistBundles.get(primaryHlsUrl).loadPlaylist();
}
} }
private void createBundles(List<HlsUrl> urls) { private void createBundles(List<HlsUrl> urls) {