mirror of
https://github.com/samsonjs/media.git
synced 2026-04-27 15:07:40 +00:00
Remove last references to old load error handling methods
PiperOrigin-RevId: 311531734
This commit is contained in:
parent
9e35c6c28c
commit
758e99e3f1
2 changed files with 43 additions and 16 deletions
|
|
@ -21,7 +21,10 @@ import android.net.Uri;
|
||||||
import androidx.test.ext.junit.runners.AndroidJUnit4;
|
import androidx.test.ext.junit.runners.AndroidJUnit4;
|
||||||
import com.google.android.exoplayer2.C;
|
import com.google.android.exoplayer2.C;
|
||||||
import com.google.android.exoplayer2.ParserException;
|
import com.google.android.exoplayer2.ParserException;
|
||||||
|
import com.google.android.exoplayer2.source.LoadEventInfo;
|
||||||
|
import com.google.android.exoplayer2.source.MediaLoadData;
|
||||||
import com.google.android.exoplayer2.upstream.HttpDataSource.InvalidResponseCodeException;
|
import com.google.android.exoplayer2.upstream.HttpDataSource.InvalidResponseCodeException;
|
||||||
|
import com.google.android.exoplayer2.upstream.LoadErrorHandlingPolicy.LoadErrorInfo;
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
import java.util.Collections;
|
import java.util.Collections;
|
||||||
import org.junit.Test;
|
import org.junit.Test;
|
||||||
|
|
@ -31,6 +34,18 @@ import org.junit.runner.RunWith;
|
||||||
@RunWith(AndroidJUnit4.class)
|
@RunWith(AndroidJUnit4.class)
|
||||||
public final class DefaultLoadErrorHandlingPolicyTest {
|
public final class DefaultLoadErrorHandlingPolicyTest {
|
||||||
|
|
||||||
|
private static final LoadEventInfo PLACEHOLDER_LOAD_EVENT_INFO =
|
||||||
|
new LoadEventInfo(
|
||||||
|
LoadEventInfo.getNewId(),
|
||||||
|
new DataSpec(Uri.EMPTY),
|
||||||
|
Uri.EMPTY,
|
||||||
|
/* responseHeaders= */ Collections.emptyMap(),
|
||||||
|
/* elapsedRealtimeMs= */ 5000,
|
||||||
|
/* loadDurationMs= */ 1000,
|
||||||
|
/* bytesLoaded= */ 0);
|
||||||
|
private static final MediaLoadData PLACEHOLDER_MEDIA_LOAD_DATA =
|
||||||
|
new MediaLoadData(/* dataType= */ C.DATA_TYPE_UNKNOWN);
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void getBlacklistDurationMsFor_blacklist404() {
|
public void getBlacklistDurationMsFor_blacklist404() {
|
||||||
InvalidResponseCodeException exception =
|
InvalidResponseCodeException exception =
|
||||||
|
|
@ -77,13 +92,19 @@ public final class DefaultLoadErrorHandlingPolicyTest {
|
||||||
}
|
}
|
||||||
|
|
||||||
private static long getDefaultPolicyBlacklistOutputFor(IOException exception) {
|
private static long getDefaultPolicyBlacklistOutputFor(IOException exception) {
|
||||||
return new DefaultLoadErrorHandlingPolicy()
|
LoadErrorInfo loadErrorInfo =
|
||||||
.getBlacklistDurationMsFor(
|
new LoadErrorInfo(
|
||||||
C.DATA_TYPE_MEDIA, /* loadDurationMs= */ 1000, exception, /* errorCount= */ 1);
|
PLACEHOLDER_LOAD_EVENT_INFO,
|
||||||
|
PLACEHOLDER_MEDIA_LOAD_DATA,
|
||||||
|
exception,
|
||||||
|
/* errorCount= */ 1);
|
||||||
|
return new DefaultLoadErrorHandlingPolicy().getBlacklistDurationMsFor(loadErrorInfo);
|
||||||
}
|
}
|
||||||
|
|
||||||
private static long getDefaultPolicyRetryDelayOutputFor(IOException exception, int errorCount) {
|
private static long getDefaultPolicyRetryDelayOutputFor(IOException exception, int errorCount) {
|
||||||
return new DefaultLoadErrorHandlingPolicy()
|
LoadErrorInfo loadErrorInfo =
|
||||||
.getRetryDelayMsFor(C.DATA_TYPE_MEDIA, /* loadDurationMs= */ 1000, exception, errorCount);
|
new LoadErrorInfo(
|
||||||
|
PLACEHOLDER_LOAD_EVENT_INFO, PLACEHOLDER_MEDIA_LOAD_DATA, exception, errorCount);
|
||||||
|
return new DefaultLoadErrorHandlingPolicy().getRetryDelayMsFor(loadErrorInfo);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -238,12 +238,6 @@ public final class DefaultHlsPlaylistTracker
|
||||||
primaryMediaPlaylistUrl = masterPlaylist.variants.get(0).url;
|
primaryMediaPlaylistUrl = masterPlaylist.variants.get(0).url;
|
||||||
createBundles(masterPlaylist.mediaPlaylistUrls);
|
createBundles(masterPlaylist.mediaPlaylistUrls);
|
||||||
MediaPlaylistBundle primaryBundle = playlistBundles.get(primaryMediaPlaylistUrl);
|
MediaPlaylistBundle primaryBundle = playlistBundles.get(primaryMediaPlaylistUrl);
|
||||||
if (isMediaPlaylist) {
|
|
||||||
// We don't need to load the playlist again. We can use the same result.
|
|
||||||
primaryBundle.processLoadedPlaylist((HlsMediaPlaylist) result, loadDurationMs);
|
|
||||||
} else {
|
|
||||||
primaryBundle.loadPlaylist();
|
|
||||||
}
|
|
||||||
LoadEventInfo loadEventInfo =
|
LoadEventInfo loadEventInfo =
|
||||||
new LoadEventInfo(
|
new LoadEventInfo(
|
||||||
loadable.loadTaskId,
|
loadable.loadTaskId,
|
||||||
|
|
@ -253,6 +247,12 @@ public final class DefaultHlsPlaylistTracker
|
||||||
elapsedRealtimeMs,
|
elapsedRealtimeMs,
|
||||||
loadDurationMs,
|
loadDurationMs,
|
||||||
loadable.bytesLoaded());
|
loadable.bytesLoaded());
|
||||||
|
if (isMediaPlaylist) {
|
||||||
|
// We don't need to load the playlist again. We can use the same result.
|
||||||
|
primaryBundle.processLoadedPlaylist((HlsMediaPlaylist) result, loadEventInfo);
|
||||||
|
} else {
|
||||||
|
primaryBundle.loadPlaylist();
|
||||||
|
}
|
||||||
loadErrorHandlingPolicy.onLoadTaskConcluded(loadable.loadTaskId);
|
loadErrorHandlingPolicy.onLoadTaskConcluded(loadable.loadTaskId);
|
||||||
eventDispatcher.loadCompleted(loadEventInfo, C.DATA_TYPE_MANIFEST);
|
eventDispatcher.loadCompleted(loadEventInfo, C.DATA_TYPE_MANIFEST);
|
||||||
}
|
}
|
||||||
|
|
@ -540,15 +540,15 @@ public final class DefaultHlsPlaylistTracker
|
||||||
elapsedRealtimeMs,
|
elapsedRealtimeMs,
|
||||||
loadDurationMs,
|
loadDurationMs,
|
||||||
loadable.bytesLoaded());
|
loadable.bytesLoaded());
|
||||||
loadErrorHandlingPolicy.onLoadTaskConcluded(loadable.loadTaskId);
|
|
||||||
if (result instanceof HlsMediaPlaylist) {
|
if (result instanceof HlsMediaPlaylist) {
|
||||||
processLoadedPlaylist((HlsMediaPlaylist) result, loadDurationMs);
|
processLoadedPlaylist((HlsMediaPlaylist) result, loadEventInfo);
|
||||||
eventDispatcher.loadCompleted(loadEventInfo, C.DATA_TYPE_MANIFEST);
|
eventDispatcher.loadCompleted(loadEventInfo, C.DATA_TYPE_MANIFEST);
|
||||||
} else {
|
} else {
|
||||||
playlistError = new ParserException("Loaded playlist has unexpected type.");
|
playlistError = new ParserException("Loaded playlist has unexpected type.");
|
||||||
eventDispatcher.loadError(
|
eventDispatcher.loadError(
|
||||||
loadEventInfo, C.DATA_TYPE_MANIFEST, playlistError, /* wasCanceled= */ true);
|
loadEventInfo, C.DATA_TYPE_MANIFEST, playlistError, /* wasCanceled= */ true);
|
||||||
}
|
}
|
||||||
|
loadErrorHandlingPolicy.onLoadTaskConcluded(loadable.loadTaskId);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|
@ -639,7 +639,8 @@ public final class DefaultHlsPlaylistTracker
|
||||||
mediaPlaylistLoadable.type);
|
mediaPlaylistLoadable.type);
|
||||||
}
|
}
|
||||||
|
|
||||||
private void processLoadedPlaylist(HlsMediaPlaylist loadedPlaylist, long loadDurationMs) {
|
private void processLoadedPlaylist(
|
||||||
|
HlsMediaPlaylist loadedPlaylist, LoadEventInfo loadEventInfo) {
|
||||||
HlsMediaPlaylist oldPlaylist = playlistSnapshot;
|
HlsMediaPlaylist oldPlaylist = playlistSnapshot;
|
||||||
long currentTimeMs = SystemClock.elapsedRealtime();
|
long currentTimeMs = SystemClock.elapsedRealtime();
|
||||||
lastSnapshotLoadMs = currentTimeMs;
|
lastSnapshotLoadMs = currentTimeMs;
|
||||||
|
|
@ -661,9 +662,14 @@ public final class DefaultHlsPlaylistTracker
|
||||||
* playlistStuckTargetDurationCoefficient) {
|
* playlistStuckTargetDurationCoefficient) {
|
||||||
// TODO: Allow customization of stuck playlists handling.
|
// TODO: Allow customization of stuck playlists handling.
|
||||||
playlistError = new PlaylistStuckException(playlistUrl);
|
playlistError = new PlaylistStuckException(playlistUrl);
|
||||||
|
LoadErrorInfo loadErrorInfo =
|
||||||
|
new LoadErrorInfo(
|
||||||
|
loadEventInfo,
|
||||||
|
new MediaLoadData(C.DATA_TYPE_MANIFEST),
|
||||||
|
playlistError,
|
||||||
|
/* errorCount= */ 1);
|
||||||
long blacklistDurationMs =
|
long blacklistDurationMs =
|
||||||
loadErrorHandlingPolicy.getBlacklistDurationMsFor(
|
loadErrorHandlingPolicy.getBlacklistDurationMsFor(loadErrorInfo);
|
||||||
C.DATA_TYPE_MANIFEST, loadDurationMs, playlistError, /* errorCount= */ 1);
|
|
||||||
notifyPlaylistError(playlistUrl, blacklistDurationMs);
|
notifyPlaylistError(playlistUrl, blacklistDurationMs);
|
||||||
if (blacklistDurationMs != C.TIME_UNSET) {
|
if (blacklistDurationMs != C.TIME_UNSET) {
|
||||||
blacklistPlaylist(blacklistDurationMs);
|
blacklistPlaylist(blacklistDurationMs);
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue