mirror of
https://github.com/androidx/media.git
synced 2025-05-17 04:29:55 +08:00
Merge LoadErrorHandlingPolicy cleanup methods
Issue: #7309 PiperOrigin-RevId: 309387483
This commit is contained in:
parent
956514ad9b
commit
0774ee1da9
@ -563,7 +563,7 @@ import org.checkerframework.checker.nullness.qual.MonotonicNonNull;
|
|||||||
elapsedRealtimeMs,
|
elapsedRealtimeMs,
|
||||||
loadDurationMs,
|
loadDurationMs,
|
||||||
dataSource.getBytesRead());
|
dataSource.getBytesRead());
|
||||||
loadErrorHandlingPolicy.onLoadCompleted(loadEventInfo);
|
loadErrorHandlingPolicy.onLoadTaskConcluded(loadable.loadTaskId);
|
||||||
eventDispatcher.loadCompleted(
|
eventDispatcher.loadCompleted(
|
||||||
loadEventInfo,
|
loadEventInfo,
|
||||||
C.DATA_TYPE_MEDIA,
|
C.DATA_TYPE_MEDIA,
|
||||||
@ -591,7 +591,7 @@ import org.checkerframework.checker.nullness.qual.MonotonicNonNull;
|
|||||||
elapsedRealtimeMs,
|
elapsedRealtimeMs,
|
||||||
loadDurationMs,
|
loadDurationMs,
|
||||||
dataSource.getBytesRead());
|
dataSource.getBytesRead());
|
||||||
loadErrorHandlingPolicy.onLoadCanceled(loadEventInfo);
|
loadErrorHandlingPolicy.onLoadTaskConcluded(loadable.loadTaskId);
|
||||||
eventDispatcher.loadCanceled(
|
eventDispatcher.loadCanceled(
|
||||||
loadEventInfo,
|
loadEventInfo,
|
||||||
C.DATA_TYPE_MEDIA,
|
C.DATA_TYPE_MEDIA,
|
||||||
@ -635,6 +635,7 @@ import org.checkerframework.checker.nullness.qual.MonotonicNonNull;
|
|||||||
}
|
}
|
||||||
|
|
||||||
StatsDataSource dataSource = loadable.dataSource;
|
StatsDataSource dataSource = loadable.dataSource;
|
||||||
|
boolean wasCanceled = !loadErrorAction.isRetry();
|
||||||
eventDispatcher.loadError(
|
eventDispatcher.loadError(
|
||||||
new LoadEventInfo(
|
new LoadEventInfo(
|
||||||
loadable.loadTaskId,
|
loadable.loadTaskId,
|
||||||
@ -652,7 +653,10 @@ import org.checkerframework.checker.nullness.qual.MonotonicNonNull;
|
|||||||
/* mediaStartTimeUs= */ loadable.seekTimeUs,
|
/* mediaStartTimeUs= */ loadable.seekTimeUs,
|
||||||
durationUs,
|
durationUs,
|
||||||
error,
|
error,
|
||||||
!loadErrorAction.isRetry());
|
wasCanceled);
|
||||||
|
if (wasCanceled) {
|
||||||
|
loadErrorHandlingPolicy.onLoadTaskConcluded(loadable.loadTaskId);
|
||||||
|
}
|
||||||
return loadErrorAction;
|
return loadErrorAction;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -227,7 +227,7 @@ import org.checkerframework.checker.nullness.qual.MonotonicNonNull;
|
|||||||
elapsedRealtimeMs,
|
elapsedRealtimeMs,
|
||||||
loadDurationMs,
|
loadDurationMs,
|
||||||
sampleSize);
|
sampleSize);
|
||||||
loadErrorHandlingPolicy.onLoadCompleted(loadEventInfo);
|
loadErrorHandlingPolicy.onLoadTaskConcluded(loadable.loadTaskId);
|
||||||
eventDispatcher.loadCompleted(
|
eventDispatcher.loadCompleted(
|
||||||
loadEventInfo,
|
loadEventInfo,
|
||||||
C.DATA_TYPE_MEDIA,
|
C.DATA_TYPE_MEDIA,
|
||||||
@ -252,7 +252,7 @@ import org.checkerframework.checker.nullness.qual.MonotonicNonNull;
|
|||||||
elapsedRealtimeMs,
|
elapsedRealtimeMs,
|
||||||
loadDurationMs,
|
loadDurationMs,
|
||||||
dataSource.getBytesRead());
|
dataSource.getBytesRead());
|
||||||
loadErrorHandlingPolicy.onLoadCanceled(loadEventInfo);
|
loadErrorHandlingPolicy.onLoadTaskConcluded(loadable.loadTaskId);
|
||||||
eventDispatcher.loadCanceled(
|
eventDispatcher.loadCanceled(
|
||||||
loadEventInfo,
|
loadEventInfo,
|
||||||
C.DATA_TYPE_MEDIA,
|
C.DATA_TYPE_MEDIA,
|
||||||
@ -290,6 +290,7 @@ import org.checkerframework.checker.nullness.qual.MonotonicNonNull;
|
|||||||
: Loader.DONT_RETRY_FATAL;
|
: Loader.DONT_RETRY_FATAL;
|
||||||
}
|
}
|
||||||
StatsDataSource dataSource = loadable.dataSource;
|
StatsDataSource dataSource = loadable.dataSource;
|
||||||
|
boolean wasCanceled = !action.isRetry();
|
||||||
eventDispatcher.loadError(
|
eventDispatcher.loadError(
|
||||||
new LoadEventInfo(
|
new LoadEventInfo(
|
||||||
loadable.loadTaskId,
|
loadable.loadTaskId,
|
||||||
@ -307,7 +308,10 @@ import org.checkerframework.checker.nullness.qual.MonotonicNonNull;
|
|||||||
/* mediaStartTimeUs= */ 0,
|
/* mediaStartTimeUs= */ 0,
|
||||||
durationUs,
|
durationUs,
|
||||||
error,
|
error,
|
||||||
/* wasCanceled= */ !action.isRetry());
|
wasCanceled);
|
||||||
|
if (wasCanceled) {
|
||||||
|
loadErrorHandlingPolicy.onLoadTaskConcluded(loadable.loadTaskId);
|
||||||
|
}
|
||||||
return action;
|
return action;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -414,7 +414,7 @@ public class ChunkSampleStream<T extends ChunkSource> implements SampleStream, S
|
|||||||
elapsedRealtimeMs,
|
elapsedRealtimeMs,
|
||||||
loadDurationMs,
|
loadDurationMs,
|
||||||
loadable.bytesLoaded());
|
loadable.bytesLoaded());
|
||||||
loadErrorHandlingPolicy.onLoadCompleted(loadEventInfo);
|
loadErrorHandlingPolicy.onLoadTaskConcluded(loadable.loadTaskId);
|
||||||
eventDispatcher.loadCompleted(
|
eventDispatcher.loadCompleted(
|
||||||
loadEventInfo,
|
loadEventInfo,
|
||||||
loadable.type,
|
loadable.type,
|
||||||
@ -439,7 +439,7 @@ public class ChunkSampleStream<T extends ChunkSource> implements SampleStream, S
|
|||||||
elapsedRealtimeMs,
|
elapsedRealtimeMs,
|
||||||
loadDurationMs,
|
loadDurationMs,
|
||||||
loadable.bytesLoaded());
|
loadable.bytesLoaded());
|
||||||
loadErrorHandlingPolicy.onLoadCanceled(loadEventInfo);
|
loadErrorHandlingPolicy.onLoadTaskConcluded(loadable.loadTaskId);
|
||||||
eventDispatcher.loadCanceled(
|
eventDispatcher.loadCanceled(
|
||||||
loadEventInfo,
|
loadEventInfo,
|
||||||
loadable.type,
|
loadable.type,
|
||||||
@ -522,6 +522,7 @@ public class ChunkSampleStream<T extends ChunkSource> implements SampleStream, S
|
|||||||
error,
|
error,
|
||||||
canceled);
|
canceled);
|
||||||
if (canceled) {
|
if (canceled) {
|
||||||
|
loadErrorHandlingPolicy.onLoadTaskConcluded(loadable.loadTaskId);
|
||||||
callback.onContinueLoadingRequested(this);
|
callback.onContinueLoadingRequested(this);
|
||||||
}
|
}
|
||||||
return loadErrorAction;
|
return loadErrorAction;
|
||||||
|
@ -137,20 +137,12 @@ public interface LoadErrorHandlingPolicy {
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Called when the load associated with the given {@link LoadEventInfo} completes.
|
* Called once {@code loadTaskId} will not be associated with any more load errors.
|
||||||
*
|
*
|
||||||
* <p>Implementations of this interface should avoid resource leaks by releasing resources
|
* <p>Implementations should clean up any resources associated with {@code loadTaskId} when this
|
||||||
* associated to the given {@link LoadEventInfo#loadTaskId}.
|
* method is called.
|
||||||
*/
|
*/
|
||||||
default void onLoadCompleted(LoadEventInfo loadEventInfo) {}
|
default void onLoadTaskConcluded(long loadTaskId) {}
|
||||||
|
|
||||||
/**
|
|
||||||
* Called when the load associated with the given {@link LoadEventInfo} is canceled.
|
|
||||||
*
|
|
||||||
* <p>Implementations of this interface should avoid resource leaks by releasing resources
|
|
||||||
* associated to the given {@link LoadEventInfo#loadTaskId}.
|
|
||||||
*/
|
|
||||||
default void onLoadCanceled(LoadEventInfo loadEventInfo) {}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Returns the minimum number of times to retry a load in the case of a load error, before
|
* Returns the minimum number of times to retry a load in the case of a load error, before
|
||||||
|
@ -763,7 +763,7 @@ public final class DashMediaSource extends BaseMediaSource {
|
|||||||
elapsedRealtimeMs,
|
elapsedRealtimeMs,
|
||||||
loadDurationMs,
|
loadDurationMs,
|
||||||
loadable.bytesLoaded());
|
loadable.bytesLoaded());
|
||||||
loadErrorHandlingPolicy.onLoadCompleted(loadEventInfo);
|
loadErrorHandlingPolicy.onLoadTaskConcluded(loadable.loadTaskId);
|
||||||
manifestEventDispatcher.loadCompleted(loadEventInfo, loadable.type);
|
manifestEventDispatcher.loadCompleted(loadEventInfo, loadable.type);
|
||||||
DashManifest newManifest = loadable.getResult();
|
DashManifest newManifest = loadable.getResult();
|
||||||
|
|
||||||
@ -859,6 +859,7 @@ public final class DashMediaSource extends BaseMediaSource {
|
|||||||
retryDelayMs == C.TIME_UNSET
|
retryDelayMs == C.TIME_UNSET
|
||||||
? Loader.DONT_RETRY_FATAL
|
? Loader.DONT_RETRY_FATAL
|
||||||
: Loader.createRetryAction(/* resetErrorCount= */ false, retryDelayMs);
|
: Loader.createRetryAction(/* resetErrorCount= */ false, retryDelayMs);
|
||||||
|
boolean wasCanceled = !loadErrorAction.isRetry();
|
||||||
manifestEventDispatcher.loadError(
|
manifestEventDispatcher.loadError(
|
||||||
new LoadEventInfo(
|
new LoadEventInfo(
|
||||||
loadable.loadTaskId,
|
loadable.loadTaskId,
|
||||||
@ -870,7 +871,10 @@ public final class DashMediaSource extends BaseMediaSource {
|
|||||||
loadable.bytesLoaded()),
|
loadable.bytesLoaded()),
|
||||||
loadable.type,
|
loadable.type,
|
||||||
error,
|
error,
|
||||||
!loadErrorAction.isRetry());
|
wasCanceled);
|
||||||
|
if (wasCanceled) {
|
||||||
|
loadErrorHandlingPolicy.onLoadTaskConcluded(loadable.loadTaskId);
|
||||||
|
}
|
||||||
return loadErrorAction;
|
return loadErrorAction;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -885,7 +889,7 @@ public final class DashMediaSource extends BaseMediaSource {
|
|||||||
elapsedRealtimeMs,
|
elapsedRealtimeMs,
|
||||||
loadDurationMs,
|
loadDurationMs,
|
||||||
loadable.bytesLoaded());
|
loadable.bytesLoaded());
|
||||||
loadErrorHandlingPolicy.onLoadCompleted(loadEventInfo);
|
loadErrorHandlingPolicy.onLoadTaskConcluded(loadable.loadTaskId);
|
||||||
manifestEventDispatcher.loadCompleted(loadEventInfo, loadable.type);
|
manifestEventDispatcher.loadCompleted(loadEventInfo, loadable.type);
|
||||||
onUtcTimestampResolved(loadable.getResult() - elapsedRealtimeMs);
|
onUtcTimestampResolved(loadable.getResult() - elapsedRealtimeMs);
|
||||||
}
|
}
|
||||||
@ -907,6 +911,7 @@ public final class DashMediaSource extends BaseMediaSource {
|
|||||||
loadable.type,
|
loadable.type,
|
||||||
error,
|
error,
|
||||||
/* wasCanceled= */ true);
|
/* wasCanceled= */ true);
|
||||||
|
loadErrorHandlingPolicy.onLoadTaskConcluded(loadable.loadTaskId);
|
||||||
onUtcTimestampResolutionError(error);
|
onUtcTimestampResolutionError(error);
|
||||||
return Loader.DONT_RETRY;
|
return Loader.DONT_RETRY;
|
||||||
}
|
}
|
||||||
@ -922,7 +927,7 @@ public final class DashMediaSource extends BaseMediaSource {
|
|||||||
elapsedRealtimeMs,
|
elapsedRealtimeMs,
|
||||||
loadDurationMs,
|
loadDurationMs,
|
||||||
loadable.bytesLoaded());
|
loadable.bytesLoaded());
|
||||||
loadErrorHandlingPolicy.onLoadCanceled(loadEventInfo);
|
loadErrorHandlingPolicy.onLoadTaskConcluded(loadable.loadTaskId);
|
||||||
manifestEventDispatcher.loadCanceled(loadEventInfo, loadable.type);
|
manifestEventDispatcher.loadCanceled(loadEventInfo, loadable.type);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -711,7 +711,7 @@ import org.checkerframework.checker.nullness.qual.RequiresNonNull;
|
|||||||
elapsedRealtimeMs,
|
elapsedRealtimeMs,
|
||||||
loadDurationMs,
|
loadDurationMs,
|
||||||
loadable.bytesLoaded());
|
loadable.bytesLoaded());
|
||||||
loadErrorHandlingPolicy.onLoadCompleted(loadEventInfo);
|
loadErrorHandlingPolicy.onLoadTaskConcluded(loadable.loadTaskId);
|
||||||
eventDispatcher.loadCompleted(
|
eventDispatcher.loadCompleted(
|
||||||
loadEventInfo,
|
loadEventInfo,
|
||||||
loadable.type,
|
loadable.type,
|
||||||
@ -740,7 +740,7 @@ import org.checkerframework.checker.nullness.qual.RequiresNonNull;
|
|||||||
elapsedRealtimeMs,
|
elapsedRealtimeMs,
|
||||||
loadDurationMs,
|
loadDurationMs,
|
||||||
loadable.bytesLoaded());
|
loadable.bytesLoaded());
|
||||||
loadErrorHandlingPolicy.onLoadCanceled(loadEventInfo);
|
loadErrorHandlingPolicy.onLoadTaskConcluded(loadable.loadTaskId);
|
||||||
eventDispatcher.loadCanceled(
|
eventDispatcher.loadCanceled(
|
||||||
loadEventInfo,
|
loadEventInfo,
|
||||||
loadable.type,
|
loadable.type,
|
||||||
@ -796,6 +796,7 @@ import org.checkerframework.checker.nullness.qual.RequiresNonNull;
|
|||||||
: Loader.DONT_RETRY_FATAL;
|
: Loader.DONT_RETRY_FATAL;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
boolean wasCanceled = !loadErrorAction.isRetry();
|
||||||
eventDispatcher.loadError(
|
eventDispatcher.loadError(
|
||||||
new LoadEventInfo(
|
new LoadEventInfo(
|
||||||
loadable.loadTaskId,
|
loadable.loadTaskId,
|
||||||
@ -813,7 +814,10 @@ import org.checkerframework.checker.nullness.qual.RequiresNonNull;
|
|||||||
loadable.startTimeUs,
|
loadable.startTimeUs,
|
||||||
loadable.endTimeUs,
|
loadable.endTimeUs,
|
||||||
error,
|
error,
|
||||||
/* wasCanceled= */ !loadErrorAction.isRetry());
|
wasCanceled);
|
||||||
|
if (wasCanceled) {
|
||||||
|
loadErrorHandlingPolicy.onLoadTaskConcluded(loadable.loadTaskId);
|
||||||
|
}
|
||||||
|
|
||||||
if (blacklistSucceeded) {
|
if (blacklistSucceeded) {
|
||||||
if (!prepared) {
|
if (!prepared) {
|
||||||
|
@ -251,7 +251,7 @@ public final class DefaultHlsPlaylistTracker
|
|||||||
elapsedRealtimeMs,
|
elapsedRealtimeMs,
|
||||||
loadDurationMs,
|
loadDurationMs,
|
||||||
loadable.bytesLoaded());
|
loadable.bytesLoaded());
|
||||||
loadErrorHandlingPolicy.onLoadCompleted(loadEventInfo);
|
loadErrorHandlingPolicy.onLoadTaskConcluded(loadable.loadTaskId);
|
||||||
eventDispatcher.loadCompleted(loadEventInfo, C.DATA_TYPE_MANIFEST);
|
eventDispatcher.loadCompleted(loadEventInfo, C.DATA_TYPE_MANIFEST);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -270,7 +270,7 @@ public final class DefaultHlsPlaylistTracker
|
|||||||
elapsedRealtimeMs,
|
elapsedRealtimeMs,
|
||||||
loadDurationMs,
|
loadDurationMs,
|
||||||
loadable.bytesLoaded());
|
loadable.bytesLoaded());
|
||||||
loadErrorHandlingPolicy.onLoadCanceled(loadEventInfo);
|
loadErrorHandlingPolicy.onLoadTaskConcluded(loadable.loadTaskId);
|
||||||
eventDispatcher.loadCanceled(loadEventInfo, C.DATA_TYPE_MANIFEST);
|
eventDispatcher.loadCanceled(loadEventInfo, C.DATA_TYPE_MANIFEST);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -297,6 +297,9 @@ public final class DefaultHlsPlaylistTracker
|
|||||||
C.DATA_TYPE_MANIFEST,
|
C.DATA_TYPE_MANIFEST,
|
||||||
error,
|
error,
|
||||||
isFatal);
|
isFatal);
|
||||||
|
if (isFatal) {
|
||||||
|
loadErrorHandlingPolicy.onLoadTaskConcluded(loadable.loadTaskId);
|
||||||
|
}
|
||||||
return isFatal
|
return isFatal
|
||||||
? Loader.DONT_RETRY_FATAL
|
? Loader.DONT_RETRY_FATAL
|
||||||
: Loader.createRetryAction(/* resetErrorCount= */ false, retryDelayMs);
|
: Loader.createRetryAction(/* resetErrorCount= */ false, retryDelayMs);
|
||||||
@ -536,7 +539,7 @@ public final class DefaultHlsPlaylistTracker
|
|||||||
elapsedRealtimeMs,
|
elapsedRealtimeMs,
|
||||||
loadDurationMs,
|
loadDurationMs,
|
||||||
loadable.bytesLoaded());
|
loadable.bytesLoaded());
|
||||||
loadErrorHandlingPolicy.onLoadCompleted(loadEventInfo);
|
loadErrorHandlingPolicy.onLoadTaskConcluded(loadable.loadTaskId);
|
||||||
if (result instanceof HlsMediaPlaylist) {
|
if (result instanceof HlsMediaPlaylist) {
|
||||||
processLoadedPlaylist((HlsMediaPlaylist) result, loadDurationMs);
|
processLoadedPlaylist((HlsMediaPlaylist) result, loadDurationMs);
|
||||||
eventDispatcher.loadCompleted(loadEventInfo, C.DATA_TYPE_MANIFEST);
|
eventDispatcher.loadCompleted(loadEventInfo, C.DATA_TYPE_MANIFEST);
|
||||||
@ -560,7 +563,7 @@ public final class DefaultHlsPlaylistTracker
|
|||||||
elapsedRealtimeMs,
|
elapsedRealtimeMs,
|
||||||
loadDurationMs,
|
loadDurationMs,
|
||||||
loadable.bytesLoaded());
|
loadable.bytesLoaded());
|
||||||
loadErrorHandlingPolicy.onLoadCanceled(loadEventInfo);
|
loadErrorHandlingPolicy.onLoadTaskConcluded(loadable.loadTaskId);
|
||||||
eventDispatcher.loadCanceled(loadEventInfo, C.DATA_TYPE_MANIFEST);
|
eventDispatcher.loadCanceled(loadEventInfo, C.DATA_TYPE_MANIFEST);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -596,6 +599,7 @@ public final class DefaultHlsPlaylistTracker
|
|||||||
loadErrorAction = Loader.DONT_RETRY;
|
loadErrorAction = Loader.DONT_RETRY;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
boolean wasCanceled = !loadErrorAction.isRetry();
|
||||||
eventDispatcher.loadError(
|
eventDispatcher.loadError(
|
||||||
new LoadEventInfo(
|
new LoadEventInfo(
|
||||||
loadable.loadTaskId,
|
loadable.loadTaskId,
|
||||||
@ -607,8 +611,10 @@ public final class DefaultHlsPlaylistTracker
|
|||||||
loadable.bytesLoaded()),
|
loadable.bytesLoaded()),
|
||||||
C.DATA_TYPE_MANIFEST,
|
C.DATA_TYPE_MANIFEST,
|
||||||
error,
|
error,
|
||||||
/* wasCanceled= */ !loadErrorAction.isRetry());
|
wasCanceled);
|
||||||
|
if (wasCanceled) {
|
||||||
|
loadErrorHandlingPolicy.onLoadTaskConcluded(loadable.loadTaskId);
|
||||||
|
}
|
||||||
return loadErrorAction;
|
return loadErrorAction;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -630,7 +630,7 @@ public final class SsMediaSource extends BaseMediaSource
|
|||||||
elapsedRealtimeMs,
|
elapsedRealtimeMs,
|
||||||
loadDurationMs,
|
loadDurationMs,
|
||||||
loadable.bytesLoaded());
|
loadable.bytesLoaded());
|
||||||
loadErrorHandlingPolicy.onLoadCompleted(loadEventInfo);
|
loadErrorHandlingPolicy.onLoadTaskConcluded(loadable.loadTaskId);
|
||||||
manifestEventDispatcher.loadCompleted(loadEventInfo, loadable.type);
|
manifestEventDispatcher.loadCompleted(loadEventInfo, loadable.type);
|
||||||
manifest = loadable.getResult();
|
manifest = loadable.getResult();
|
||||||
manifestLoadStartTimestamp = elapsedRealtimeMs - loadDurationMs;
|
manifestLoadStartTimestamp = elapsedRealtimeMs - loadDurationMs;
|
||||||
@ -653,7 +653,7 @@ public final class SsMediaSource extends BaseMediaSource
|
|||||||
elapsedRealtimeMs,
|
elapsedRealtimeMs,
|
||||||
loadDurationMs,
|
loadDurationMs,
|
||||||
loadable.bytesLoaded());
|
loadable.bytesLoaded());
|
||||||
loadErrorHandlingPolicy.onLoadCanceled(loadEventInfo);
|
loadErrorHandlingPolicy.onLoadTaskConcluded(loadable.loadTaskId);
|
||||||
manifestEventDispatcher.loadCanceled(loadEventInfo, loadable.type);
|
manifestEventDispatcher.loadCanceled(loadEventInfo, loadable.type);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -671,6 +671,7 @@ public final class SsMediaSource extends BaseMediaSource
|
|||||||
retryDelayMs == C.TIME_UNSET
|
retryDelayMs == C.TIME_UNSET
|
||||||
? Loader.DONT_RETRY_FATAL
|
? Loader.DONT_RETRY_FATAL
|
||||||
: Loader.createRetryAction(/* resetErrorCount= */ false, retryDelayMs);
|
: Loader.createRetryAction(/* resetErrorCount= */ false, retryDelayMs);
|
||||||
|
boolean wasCanceled = !loadErrorAction.isRetry();
|
||||||
manifestEventDispatcher.loadError(
|
manifestEventDispatcher.loadError(
|
||||||
new LoadEventInfo(
|
new LoadEventInfo(
|
||||||
loadable.loadTaskId,
|
loadable.loadTaskId,
|
||||||
@ -682,7 +683,10 @@ public final class SsMediaSource extends BaseMediaSource
|
|||||||
loadable.bytesLoaded()),
|
loadable.bytesLoaded()),
|
||||||
loadable.type,
|
loadable.type,
|
||||||
error,
|
error,
|
||||||
!loadErrorAction.isRetry());
|
wasCanceled);
|
||||||
|
if (wasCanceled) {
|
||||||
|
loadErrorHandlingPolicy.onLoadTaskConcluded(loadable.loadTaskId);
|
||||||
|
}
|
||||||
return loadErrorAction;
|
return loadErrorAction;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user