Skip to content

Commit

Permalink
Merge LoadErrorHandlingPolicy cleanup methods
Browse files Browse the repository at this point in the history
Issue: #7309
PiperOrigin-RevId: 309387483
  • Loading branch information
AquilesCanta authored and ojw28 committed May 1, 2020
1 parent 956514a commit 0774ee1
Show file tree
Hide file tree
Showing 8 changed files with 56 additions and 36 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -563,7 +563,7 @@ public void onLoadCompleted(
elapsedRealtimeMs,
loadDurationMs,
dataSource.getBytesRead());
loadErrorHandlingPolicy.onLoadCompleted(loadEventInfo);
loadErrorHandlingPolicy.onLoadTaskConcluded(loadable.loadTaskId);
eventDispatcher.loadCompleted(
loadEventInfo,
C.DATA_TYPE_MEDIA,
Expand Down Expand Up @@ -591,7 +591,7 @@ public void onLoadCanceled(
elapsedRealtimeMs,
loadDurationMs,
dataSource.getBytesRead());
loadErrorHandlingPolicy.onLoadCanceled(loadEventInfo);
loadErrorHandlingPolicy.onLoadTaskConcluded(loadable.loadTaskId);
eventDispatcher.loadCanceled(
loadEventInfo,
C.DATA_TYPE_MEDIA,
Expand Down Expand Up @@ -635,6 +635,7 @@ public LoadErrorAction onLoadError(
}

StatsDataSource dataSource = loadable.dataSource;
boolean wasCanceled = !loadErrorAction.isRetry();
eventDispatcher.loadError(
new LoadEventInfo(
loadable.loadTaskId,
Expand All @@ -652,7 +653,10 @@ public LoadErrorAction onLoadError(
/* mediaStartTimeUs= */ loadable.seekTimeUs,
durationUs,
error,
!loadErrorAction.isRetry());
wasCanceled);
if (wasCanceled) {
loadErrorHandlingPolicy.onLoadTaskConcluded(loadable.loadTaskId);
}
return loadErrorAction;
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -227,7 +227,7 @@ public void onLoadCompleted(
elapsedRealtimeMs,
loadDurationMs,
sampleSize);
loadErrorHandlingPolicy.onLoadCompleted(loadEventInfo);
loadErrorHandlingPolicy.onLoadTaskConcluded(loadable.loadTaskId);
eventDispatcher.loadCompleted(
loadEventInfo,
C.DATA_TYPE_MEDIA,
Expand All @@ -252,7 +252,7 @@ public void onLoadCanceled(
elapsedRealtimeMs,
loadDurationMs,
dataSource.getBytesRead());
loadErrorHandlingPolicy.onLoadCanceled(loadEventInfo);
loadErrorHandlingPolicy.onLoadTaskConcluded(loadable.loadTaskId);
eventDispatcher.loadCanceled(
loadEventInfo,
C.DATA_TYPE_MEDIA,
Expand Down Expand Up @@ -290,6 +290,7 @@ public LoadErrorAction onLoadError(
: Loader.DONT_RETRY_FATAL;
}
StatsDataSource dataSource = loadable.dataSource;
boolean wasCanceled = !action.isRetry();
eventDispatcher.loadError(
new LoadEventInfo(
loadable.loadTaskId,
Expand All @@ -307,7 +308,10 @@ public LoadErrorAction onLoadError(
/* mediaStartTimeUs= */ 0,
durationUs,
error,
/* wasCanceled= */ !action.isRetry());
wasCanceled);
if (wasCanceled) {
loadErrorHandlingPolicy.onLoadTaskConcluded(loadable.loadTaskId);
}
return action;
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -414,7 +414,7 @@ public void onLoadCompleted(Chunk loadable, long elapsedRealtimeMs, long loadDur
elapsedRealtimeMs,
loadDurationMs,
loadable.bytesLoaded());
loadErrorHandlingPolicy.onLoadCompleted(loadEventInfo);
loadErrorHandlingPolicy.onLoadTaskConcluded(loadable.loadTaskId);
eventDispatcher.loadCompleted(
loadEventInfo,
loadable.type,
Expand All @@ -439,7 +439,7 @@ public void onLoadCanceled(
elapsedRealtimeMs,
loadDurationMs,
loadable.bytesLoaded());
loadErrorHandlingPolicy.onLoadCanceled(loadEventInfo);
loadErrorHandlingPolicy.onLoadTaskConcluded(loadable.loadTaskId);
eventDispatcher.loadCanceled(
loadEventInfo,
loadable.type,
Expand Down Expand Up @@ -522,6 +522,7 @@ public LoadErrorAction onLoadError(
error,
canceled);
if (canceled) {
loadErrorHandlingPolicy.onLoadTaskConcluded(loadable.loadTaskId);
callback.onContinueLoadingRequested(this);
}
return loadErrorAction;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -137,20 +137,12 @@ default long getRetryDelayMsFor(LoadErrorInfo loadErrorInfo) {
}

/**
* 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
* associated to the given {@link LoadEventInfo#loadTaskId}.
* <p>Implementations should clean up any resources associated with {@code loadTaskId} when this
* method is called.
*/
default void onLoadCompleted(LoadEventInfo loadEventInfo) {}

/**
* 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) {}
default void onLoadTaskConcluded(long loadTaskId) {}

/**
* Returns the minimum number of times to retry a load in the case of a load error, before
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -763,7 +763,7 @@ protected void releaseSourceInternal() {
elapsedRealtimeMs,
loadDurationMs,
loadable.bytesLoaded());
loadErrorHandlingPolicy.onLoadCompleted(loadEventInfo);
loadErrorHandlingPolicy.onLoadTaskConcluded(loadable.loadTaskId);
manifestEventDispatcher.loadCompleted(loadEventInfo, loadable.type);
DashManifest newManifest = loadable.getResult();

Expand Down Expand Up @@ -859,6 +859,7 @@ protected void releaseSourceInternal() {
retryDelayMs == C.TIME_UNSET
? Loader.DONT_RETRY_FATAL
: Loader.createRetryAction(/* resetErrorCount= */ false, retryDelayMs);
boolean wasCanceled = !loadErrorAction.isRetry();
manifestEventDispatcher.loadError(
new LoadEventInfo(
loadable.loadTaskId,
Expand All @@ -870,7 +871,10 @@ protected void releaseSourceInternal() {
loadable.bytesLoaded()),
loadable.type,
error,
!loadErrorAction.isRetry());
wasCanceled);
if (wasCanceled) {
loadErrorHandlingPolicy.onLoadTaskConcluded(loadable.loadTaskId);
}
return loadErrorAction;
}

Expand All @@ -885,7 +889,7 @@ protected void releaseSourceInternal() {
elapsedRealtimeMs,
loadDurationMs,
loadable.bytesLoaded());
loadErrorHandlingPolicy.onLoadCompleted(loadEventInfo);
loadErrorHandlingPolicy.onLoadTaskConcluded(loadable.loadTaskId);
manifestEventDispatcher.loadCompleted(loadEventInfo, loadable.type);
onUtcTimestampResolved(loadable.getResult() - elapsedRealtimeMs);
}
Expand All @@ -907,6 +911,7 @@ protected void releaseSourceInternal() {
loadable.type,
error,
/* wasCanceled= */ true);
loadErrorHandlingPolicy.onLoadTaskConcluded(loadable.loadTaskId);
onUtcTimestampResolutionError(error);
return Loader.DONT_RETRY;
}
Expand All @@ -922,7 +927,7 @@ protected void releaseSourceInternal() {
elapsedRealtimeMs,
loadDurationMs,
loadable.bytesLoaded());
loadErrorHandlingPolicy.onLoadCanceled(loadEventInfo);
loadErrorHandlingPolicy.onLoadTaskConcluded(loadable.loadTaskId);
manifestEventDispatcher.loadCanceled(loadEventInfo, loadable.type);
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -711,7 +711,7 @@ public void onLoadCompleted(Chunk loadable, long elapsedRealtimeMs, long loadDur
elapsedRealtimeMs,
loadDurationMs,
loadable.bytesLoaded());
loadErrorHandlingPolicy.onLoadCompleted(loadEventInfo);
loadErrorHandlingPolicy.onLoadTaskConcluded(loadable.loadTaskId);
eventDispatcher.loadCompleted(
loadEventInfo,
loadable.type,
Expand Down Expand Up @@ -740,7 +740,7 @@ public void onLoadCanceled(
elapsedRealtimeMs,
loadDurationMs,
loadable.bytesLoaded());
loadErrorHandlingPolicy.onLoadCanceled(loadEventInfo);
loadErrorHandlingPolicy.onLoadTaskConcluded(loadable.loadTaskId);
eventDispatcher.loadCanceled(
loadEventInfo,
loadable.type,
Expand Down Expand Up @@ -796,6 +796,7 @@ public LoadErrorAction onLoadError(
: Loader.DONT_RETRY_FATAL;
}

boolean wasCanceled = !loadErrorAction.isRetry();
eventDispatcher.loadError(
new LoadEventInfo(
loadable.loadTaskId,
Expand All @@ -813,7 +814,10 @@ public LoadErrorAction onLoadError(
loadable.startTimeUs,
loadable.endTimeUs,
error,
/* wasCanceled= */ !loadErrorAction.isRetry());
wasCanceled);
if (wasCanceled) {
loadErrorHandlingPolicy.onLoadTaskConcluded(loadable.loadTaskId);
}

if (blacklistSucceeded) {
if (!prepared) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -251,7 +251,7 @@ public void onLoadCompleted(
elapsedRealtimeMs,
loadDurationMs,
loadable.bytesLoaded());
loadErrorHandlingPolicy.onLoadCompleted(loadEventInfo);
loadErrorHandlingPolicy.onLoadTaskConcluded(loadable.loadTaskId);
eventDispatcher.loadCompleted(loadEventInfo, C.DATA_TYPE_MANIFEST);
}

Expand All @@ -270,7 +270,7 @@ public void onLoadCanceled(
elapsedRealtimeMs,
loadDurationMs,
loadable.bytesLoaded());
loadErrorHandlingPolicy.onLoadCanceled(loadEventInfo);
loadErrorHandlingPolicy.onLoadTaskConcluded(loadable.loadTaskId);
eventDispatcher.loadCanceled(loadEventInfo, C.DATA_TYPE_MANIFEST);
}

Expand All @@ -297,6 +297,9 @@ public LoadErrorAction onLoadError(
C.DATA_TYPE_MANIFEST,
error,
isFatal);
if (isFatal) {
loadErrorHandlingPolicy.onLoadTaskConcluded(loadable.loadTaskId);
}
return isFatal
? Loader.DONT_RETRY_FATAL
: Loader.createRetryAction(/* resetErrorCount= */ false, retryDelayMs);
Expand Down Expand Up @@ -536,7 +539,7 @@ public void onLoadCompleted(
elapsedRealtimeMs,
loadDurationMs,
loadable.bytesLoaded());
loadErrorHandlingPolicy.onLoadCompleted(loadEventInfo);
loadErrorHandlingPolicy.onLoadTaskConcluded(loadable.loadTaskId);
if (result instanceof HlsMediaPlaylist) {
processLoadedPlaylist((HlsMediaPlaylist) result, loadDurationMs);
eventDispatcher.loadCompleted(loadEventInfo, C.DATA_TYPE_MANIFEST);
Expand All @@ -560,7 +563,7 @@ public void onLoadCanceled(
elapsedRealtimeMs,
loadDurationMs,
loadable.bytesLoaded());
loadErrorHandlingPolicy.onLoadCanceled(loadEventInfo);
loadErrorHandlingPolicy.onLoadTaskConcluded(loadable.loadTaskId);
eventDispatcher.loadCanceled(loadEventInfo, C.DATA_TYPE_MANIFEST);
}

Expand Down Expand Up @@ -596,6 +599,7 @@ public LoadErrorAction onLoadError(
loadErrorAction = Loader.DONT_RETRY;
}

boolean wasCanceled = !loadErrorAction.isRetry();
eventDispatcher.loadError(
new LoadEventInfo(
loadable.loadTaskId,
Expand All @@ -607,8 +611,10 @@ public LoadErrorAction onLoadError(
loadable.bytesLoaded()),
C.DATA_TYPE_MANIFEST,
error,
/* wasCanceled= */ !loadErrorAction.isRetry());

wasCanceled);
if (wasCanceled) {
loadErrorHandlingPolicy.onLoadTaskConcluded(loadable.loadTaskId);
}
return loadErrorAction;
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -630,7 +630,7 @@ public void onLoadCompleted(
elapsedRealtimeMs,
loadDurationMs,
loadable.bytesLoaded());
loadErrorHandlingPolicy.onLoadCompleted(loadEventInfo);
loadErrorHandlingPolicy.onLoadTaskConcluded(loadable.loadTaskId);
manifestEventDispatcher.loadCompleted(loadEventInfo, loadable.type);
manifest = loadable.getResult();
manifestLoadStartTimestamp = elapsedRealtimeMs - loadDurationMs;
Expand All @@ -653,7 +653,7 @@ public void onLoadCanceled(
elapsedRealtimeMs,
loadDurationMs,
loadable.bytesLoaded());
loadErrorHandlingPolicy.onLoadCanceled(loadEventInfo);
loadErrorHandlingPolicy.onLoadTaskConcluded(loadable.loadTaskId);
manifestEventDispatcher.loadCanceled(loadEventInfo, loadable.type);
}

Expand All @@ -671,6 +671,7 @@ public LoadErrorAction onLoadError(
retryDelayMs == C.TIME_UNSET
? Loader.DONT_RETRY_FATAL
: Loader.createRetryAction(/* resetErrorCount= */ false, retryDelayMs);
boolean wasCanceled = !loadErrorAction.isRetry();
manifestEventDispatcher.loadError(
new LoadEventInfo(
loadable.loadTaskId,
Expand All @@ -682,7 +683,10 @@ public LoadErrorAction onLoadError(
loadable.bytesLoaded()),
loadable.type,
error,
!loadErrorAction.isRetry());
wasCanceled);
if (wasCanceled) {
loadErrorHandlingPolicy.onLoadTaskConcluded(loadable.loadTaskId);
}
return loadErrorAction;
}

Expand Down

0 comments on commit 0774ee1

Please sign in to comment.