Invoke onLoadCanceled/Completed for ExtractorMediaSource

-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=177936271
This commit is contained in:
andrewlewis 2017-12-05 03:53:01 -08:00 committed by Oliver Woodman
parent f0e9dbf148
commit f2f767bc12

View File

@ -405,14 +405,26 @@ import java.util.Arrays;
@Override @Override
public void onLoadCompleted(ExtractingLoadable loadable, long elapsedRealtimeMs, public void onLoadCompleted(ExtractingLoadable loadable, long elapsedRealtimeMs,
long loadDurationMs) { long loadDurationMs) {
copyLengthFromLoader(loadable);
loadingFinished = true;
if (durationUs == C.TIME_UNSET) { if (durationUs == C.TIME_UNSET) {
long largestQueuedTimestampUs = getLargestQueuedTimestampUs(); long largestQueuedTimestampUs = getLargestQueuedTimestampUs();
durationUs = largestQueuedTimestampUs == Long.MIN_VALUE ? 0 durationUs = largestQueuedTimestampUs == Long.MIN_VALUE ? 0
: largestQueuedTimestampUs + DEFAULT_LAST_SAMPLE_DURATION_US; : largestQueuedTimestampUs + DEFAULT_LAST_SAMPLE_DURATION_US;
listener.onSourceInfoRefreshed(durationUs, seekMap.isSeekable()); listener.onSourceInfoRefreshed(durationUs, seekMap.isSeekable());
} }
eventDispatcher.loadCompleted(
loadable.dataSpec,
C.DATA_TYPE_MEDIA,
C.TRACK_TYPE_UNKNOWN,
/* trackFormat= */ null,
C.SELECTION_REASON_UNKNOWN,
/* trackSelectionData= */ null,
/* mediaStartTimeUs= */ 0,
durationUs,
elapsedRealtimeMs,
loadDurationMs,
loadable.bytesLoaded);
copyLengthFromLoader(loadable);
loadingFinished = true;
callback.onContinueLoadingRequested(this); callback.onContinueLoadingRequested(this);
} }
@ -422,6 +434,18 @@ import java.util.Arrays;
if (released) { if (released) {
return; return;
} }
eventDispatcher.loadCanceled(
loadable.dataSpec,
C.DATA_TYPE_MEDIA,
C.TRACK_TYPE_UNKNOWN,
/* trackFormat= */ null,
C.SELECTION_REASON_UNKNOWN,
/* trackSelectionData= */ null,
/* mediaStartTimeUs= */ 0,
durationUs,
elapsedRealtimeMs,
loadDurationMs,
loadable.bytesLoaded);
copyLengthFromLoader(loadable); copyLengthFromLoader(loadable);
for (SampleQueue sampleQueue : sampleQueues) { for (SampleQueue sampleQueue : sampleQueues) {
sampleQueue.reset(); sampleQueue.reset();
@ -434,7 +458,6 @@ import java.util.Arrays;
@Override @Override
public int onLoadError(ExtractingLoadable loadable, long elapsedRealtimeMs, public int onLoadError(ExtractingLoadable loadable, long elapsedRealtimeMs,
long loadDurationMs, IOException error) { long loadDurationMs, IOException error) {
copyLengthFromLoader(loadable);
boolean isErrorFatal = isLoadableExceptionFatal(error); boolean isErrorFatal = isLoadableExceptionFatal(error);
eventDispatcher.loadError( eventDispatcher.loadError(
loadable.dataSpec, loadable.dataSpec,
@ -450,6 +473,7 @@ import java.util.Arrays;
loadable.bytesLoaded, loadable.bytesLoaded,
error, error,
/* wasCanceled= */ isErrorFatal); /* wasCanceled= */ isErrorFatal);
copyLengthFromLoader(loadable);
if (isErrorFatal) { if (isErrorFatal) {
return Loader.DONT_RETRY_FATAL; return Loader.DONT_RETRY_FATAL;
} }