From c830c8dc634d643271cd6e2c13b15e6598339098 Mon Sep 17 00:00:00 2001 From: tonihei Date: Wed, 10 Apr 2019 13:47:25 +0100 Subject: [PATCH] Use LoadErrorHandlingPolicy.getRetryDelayMsFor for DASH/SS manifest loads. Both manifest loads currently use the default retry delay although a LoadErrorHandlingPolicy is provided to the MediaSource. PiperOrigin-RevId: 242852672 --- .../exoplayer2/source/dash/DashMediaSource.java | 12 +++++++++--- .../source/smoothstreaming/SsMediaSource.java | 7 ++++++- 2 files changed, 15 insertions(+), 4 deletions(-) diff --git a/library/dash/src/main/java/com/google/android/exoplayer2/source/dash/DashMediaSource.java b/library/dash/src/main/java/com/google/android/exoplayer2/source/dash/DashMediaSource.java index 732ca61b62..5284f8b936 100644 --- a/library/dash/src/main/java/com/google/android/exoplayer2/source/dash/DashMediaSource.java +++ b/library/dash/src/main/java/com/google/android/exoplayer2/source/dash/DashMediaSource.java @@ -812,7 +812,8 @@ public final class DashMediaSource extends BaseMediaSource { ParsingLoadable loadable, long elapsedRealtimeMs, long loadDurationMs, - IOException error) { + IOException error, + int errorCount) { boolean isFatal = error instanceof ParserException; manifestEventDispatcher.loadError( loadable.dataSpec, @@ -824,7 +825,12 @@ public final class DashMediaSource extends BaseMediaSource { loadable.bytesLoaded(), error, isFatal); - return isFatal ? Loader.DONT_RETRY_FATAL : Loader.RETRY; + return isFatal + ? Loader.DONT_RETRY_FATAL + : Loader.createRetryAction( + /* resetErrorCount= */ false, + loadErrorHandlingPolicy.getRetryDelayMsFor( + C.DATA_TYPE_MANIFEST, loadDurationMs, error, errorCount)); } /* package */ void onUtcTimestampLoadCompleted(ParsingLoadable loadable, @@ -1296,7 +1302,7 @@ public final class DashMediaSource extends BaseMediaSource { long loadDurationMs, IOException error, int errorCount) { - return onManifestLoadError(loadable, elapsedRealtimeMs, loadDurationMs, error); + return onManifestLoadError(loadable, elapsedRealtimeMs, loadDurationMs, error, errorCount); } } diff --git a/library/smoothstreaming/src/main/java/com/google/android/exoplayer2/source/smoothstreaming/SsMediaSource.java b/library/smoothstreaming/src/main/java/com/google/android/exoplayer2/source/smoothstreaming/SsMediaSource.java index 867b17ac35..1291b846ba 100644 --- a/library/smoothstreaming/src/main/java/com/google/android/exoplayer2/source/smoothstreaming/SsMediaSource.java +++ b/library/smoothstreaming/src/main/java/com/google/android/exoplayer2/source/smoothstreaming/SsMediaSource.java @@ -639,7 +639,12 @@ public final class SsMediaSource extends BaseMediaSource loadable.bytesLoaded(), error, isFatal); - return isFatal ? Loader.DONT_RETRY_FATAL : Loader.RETRY; + return isFatal + ? Loader.DONT_RETRY_FATAL + : Loader.createRetryAction( + /* resetErrorCount= */ false, + loadErrorHandlingPolicy.getRetryDelayMsFor( + C.DATA_TYPE_MANIFEST, loadDurationMs, error, errorCount)); } // Internal methods