mirror of
https://github.com/samsonjs/media.git
synced 2026-03-31 10:25:48 +00:00
Clean up HlsPlaylistTracker
This commit is contained in:
parent
98f6e89efd
commit
d8ceef1038
1 changed files with 7 additions and 11 deletions
|
|
@ -201,7 +201,7 @@ public final class HlsPlaylistTracker implements Loader.Callback<ParsingLoadable
|
|||
*/
|
||||
public HlsMediaPlaylist getPlaylistSnapshot(HlsUrl url) {
|
||||
HlsMediaPlaylist snapshot = playlistBundles.get(url).getPlaylistSnapshot();
|
||||
if (url != primaryHlsUrl && snapshot != null) {
|
||||
if (snapshot != null) {
|
||||
maybeSetPrimaryUrl(url);
|
||||
}
|
||||
return snapshot;
|
||||
|
|
@ -339,23 +339,22 @@ public final class HlsPlaylistTracker implements Loader.Callback<ParsingLoadable
|
|||
}
|
||||
|
||||
private void maybeSetPrimaryUrl(HlsUrl url) {
|
||||
if (!masterPlaylist.variants.contains(url)
|
||||
if (url == primaryHlsUrl
|
||||
|| !masterPlaylist.variants.contains(url)
|
||||
|| (primaryUrlSnapshot != null && primaryUrlSnapshot.hasEndTag)) {
|
||||
// Only allow variant urls to be chosen as primary. Also prevent changing the primary url if
|
||||
// the last primary snapshot contains an end tag.
|
||||
// Ignore if the primary url is unchanged, if the url is not a variant url, or if the last
|
||||
// primary snapshot contains an end tag.
|
||||
return;
|
||||
}
|
||||
|
||||
primaryHlsUrl = url;
|
||||
playlistBundles.get(primaryHlsUrl).loadPlaylist();
|
||||
}
|
||||
|
||||
private void createBundles(List<HlsUrl> urls) {
|
||||
int listSize = urls.size();
|
||||
long currentTimeMs = SystemClock.elapsedRealtime();
|
||||
for (int i = 0; i < listSize; i++) {
|
||||
HlsUrl url = urls.get(i);
|
||||
MediaPlaylistBundle bundle = new MediaPlaylistBundle(url, currentTimeMs);
|
||||
MediaPlaylistBundle bundle = new MediaPlaylistBundle(url);
|
||||
playlistBundles.put(url, bundle);
|
||||
}
|
||||
}
|
||||
|
|
@ -471,14 +470,12 @@ public final class HlsPlaylistTracker implements Loader.Callback<ParsingLoadable
|
|||
private HlsMediaPlaylist playlistSnapshot;
|
||||
private long lastSnapshotLoadMs;
|
||||
private long lastSnapshotChangeMs;
|
||||
private long lastSnapshotAccessTimeMs;
|
||||
private long blacklistUntilMs;
|
||||
private boolean pendingRefresh;
|
||||
private IOException playlistError;
|
||||
|
||||
public MediaPlaylistBundle(HlsUrl playlistUrl, long initialLastSnapshotAccessTimeMs) {
|
||||
public MediaPlaylistBundle(HlsUrl playlistUrl) {
|
||||
this.playlistUrl = playlistUrl;
|
||||
lastSnapshotAccessTimeMs = initialLastSnapshotAccessTimeMs;
|
||||
mediaPlaylistLoader = new Loader("HlsPlaylistTracker:MediaPlaylist");
|
||||
mediaPlaylistLoadable = new ParsingLoadable<>(
|
||||
dataSourceFactory.createDataSource(C.DATA_TYPE_MANIFEST),
|
||||
|
|
@ -487,7 +484,6 @@ public final class HlsPlaylistTracker implements Loader.Callback<ParsingLoadable
|
|||
}
|
||||
|
||||
public HlsMediaPlaylist getPlaylistSnapshot() {
|
||||
lastSnapshotAccessTimeMs = SystemClock.elapsedRealtime();
|
||||
return playlistSnapshot;
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Reference in a new issue