mirror of
https://github.com/samsonjs/media.git
synced 2026-04-04 11:05:47 +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 com.google.android.exoplayer2.C;
|
||||
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.LoadErrorHandlingPolicy.LoadErrorInfo;
|
||||
import java.io.IOException;
|
||||
import java.util.Collections;
|
||||
import org.junit.Test;
|
||||
|
|
@ -31,6 +34,18 @@ import org.junit.runner.RunWith;
|
|||
@RunWith(AndroidJUnit4.class)
|
||||
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
|
||||
public void getBlacklistDurationMsFor_blacklist404() {
|
||||
InvalidResponseCodeException exception =
|
||||
|
|
@ -77,13 +92,19 @@ public final class DefaultLoadErrorHandlingPolicyTest {
|
|||
}
|
||||
|
||||
private static long getDefaultPolicyBlacklistOutputFor(IOException exception) {
|
||||
return new DefaultLoadErrorHandlingPolicy()
|
||||
.getBlacklistDurationMsFor(
|
||||
C.DATA_TYPE_MEDIA, /* loadDurationMs= */ 1000, exception, /* errorCount= */ 1);
|
||||
LoadErrorInfo loadErrorInfo =
|
||||
new LoadErrorInfo(
|
||||
PLACEHOLDER_LOAD_EVENT_INFO,
|
||||
PLACEHOLDER_MEDIA_LOAD_DATA,
|
||||
exception,
|
||||
/* errorCount= */ 1);
|
||||
return new DefaultLoadErrorHandlingPolicy().getBlacklistDurationMsFor(loadErrorInfo);
|
||||
}
|
||||
|
||||
private static long getDefaultPolicyRetryDelayOutputFor(IOException exception, int errorCount) {
|
||||
return new DefaultLoadErrorHandlingPolicy()
|
||||
.getRetryDelayMsFor(C.DATA_TYPE_MEDIA, /* loadDurationMs= */ 1000, exception, errorCount);
|
||||
LoadErrorInfo loadErrorInfo =
|
||||
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;
|
||||
createBundles(masterPlaylist.mediaPlaylistUrls);
|
||||
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 =
|
||||
new LoadEventInfo(
|
||||
loadable.loadTaskId,
|
||||
|
|
@ -253,6 +247,12 @@ public final class DefaultHlsPlaylistTracker
|
|||
elapsedRealtimeMs,
|
||||
loadDurationMs,
|
||||
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);
|
||||
eventDispatcher.loadCompleted(loadEventInfo, C.DATA_TYPE_MANIFEST);
|
||||
}
|
||||
|
|
@ -540,15 +540,15 @@ public final class DefaultHlsPlaylistTracker
|
|||
elapsedRealtimeMs,
|
||||
loadDurationMs,
|
||||
loadable.bytesLoaded());
|
||||
loadErrorHandlingPolicy.onLoadTaskConcluded(loadable.loadTaskId);
|
||||
if (result instanceof HlsMediaPlaylist) {
|
||||
processLoadedPlaylist((HlsMediaPlaylist) result, loadDurationMs);
|
||||
processLoadedPlaylist((HlsMediaPlaylist) result, loadEventInfo);
|
||||
eventDispatcher.loadCompleted(loadEventInfo, C.DATA_TYPE_MANIFEST);
|
||||
} else {
|
||||
playlistError = new ParserException("Loaded playlist has unexpected type.");
|
||||
eventDispatcher.loadError(
|
||||
loadEventInfo, C.DATA_TYPE_MANIFEST, playlistError, /* wasCanceled= */ true);
|
||||
}
|
||||
loadErrorHandlingPolicy.onLoadTaskConcluded(loadable.loadTaskId);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
|
@ -639,7 +639,8 @@ public final class DefaultHlsPlaylistTracker
|
|||
mediaPlaylistLoadable.type);
|
||||
}
|
||||
|
||||
private void processLoadedPlaylist(HlsMediaPlaylist loadedPlaylist, long loadDurationMs) {
|
||||
private void processLoadedPlaylist(
|
||||
HlsMediaPlaylist loadedPlaylist, LoadEventInfo loadEventInfo) {
|
||||
HlsMediaPlaylist oldPlaylist = playlistSnapshot;
|
||||
long currentTimeMs = SystemClock.elapsedRealtime();
|
||||
lastSnapshotLoadMs = currentTimeMs;
|
||||
|
|
@ -661,9 +662,14 @@ public final class DefaultHlsPlaylistTracker
|
|||
* playlistStuckTargetDurationCoefficient) {
|
||||
// TODO: Allow customization of stuck playlists handling.
|
||||
playlistError = new PlaylistStuckException(playlistUrl);
|
||||
LoadErrorInfo loadErrorInfo =
|
||||
new LoadErrorInfo(
|
||||
loadEventInfo,
|
||||
new MediaLoadData(C.DATA_TYPE_MANIFEST),
|
||||
playlistError,
|
||||
/* errorCount= */ 1);
|
||||
long blacklistDurationMs =
|
||||
loadErrorHandlingPolicy.getBlacklistDurationMsFor(
|
||||
C.DATA_TYPE_MANIFEST, loadDurationMs, playlistError, /* errorCount= */ 1);
|
||||
loadErrorHandlingPolicy.getBlacklistDurationMsFor(loadErrorInfo);
|
||||
notifyPlaylistError(playlistUrl, blacklistDurationMs);
|
||||
if (blacklistDurationMs != C.TIME_UNSET) {
|
||||
blacklistPlaylist(blacklistDurationMs);
|
||||
|
|
|
|||
Loading…
Reference in a new issue