Remove loadTaskId to Loader.Callback
Partial rollback of ca799716b8
. We'll have to plumb
the id manually, like the rest of the LoadEventInfo
members.
PiperOrigin-RevId: 304067761
This commit is contained in:
parent
802d71a5cb
commit
41853169a7
@ -544,7 +544,7 @@ import org.checkerframework.checker.nullness.qual.MonotonicNonNull;
|
||||
|
||||
@Override
|
||||
public void onLoadCompleted(
|
||||
ExtractingLoadable loadable, long loadTaskId, long elapsedRealtimeMs, long loadDurationMs) {
|
||||
ExtractingLoadable loadable, long elapsedRealtimeMs, long loadDurationMs) {
|
||||
if (durationUs == C.TIME_UNSET && seekMap != null) {
|
||||
boolean isSeekable = seekMap.isSeekable();
|
||||
long largestQueuedTimestampUs = getLargestQueuedTimestampUs();
|
||||
@ -573,11 +573,7 @@ import org.checkerframework.checker.nullness.qual.MonotonicNonNull;
|
||||
|
||||
@Override
|
||||
public void onLoadCanceled(
|
||||
ExtractingLoadable loadable,
|
||||
long loadTaskId,
|
||||
long elapsedRealtimeMs,
|
||||
long loadDurationMs,
|
||||
boolean released) {
|
||||
ExtractingLoadable loadable, long elapsedRealtimeMs, long loadDurationMs, boolean released) {
|
||||
eventDispatcher.loadCanceled(
|
||||
loadable.dataSpec,
|
||||
loadable.dataSource.getLastOpenedUri(),
|
||||
@ -606,7 +602,6 @@ import org.checkerframework.checker.nullness.qual.MonotonicNonNull;
|
||||
@Override
|
||||
public LoadErrorAction onLoadError(
|
||||
ExtractingLoadable loadable,
|
||||
long loadTaskId,
|
||||
long elapsedRealtimeMs,
|
||||
long loadDurationMs,
|
||||
IOException error,
|
||||
|
@ -213,7 +213,7 @@ import org.checkerframework.checker.nullness.qual.MonotonicNonNull;
|
||||
|
||||
@Override
|
||||
public void onLoadCompleted(
|
||||
SourceLoadable loadable, long loadTaskId, long elapsedRealtimeMs, long loadDurationMs) {
|
||||
SourceLoadable loadable, long elapsedRealtimeMs, long loadDurationMs) {
|
||||
sampleSize = (int) loadable.dataSource.getBytesRead();
|
||||
sampleData = Assertions.checkNotNull(loadable.sampleData);
|
||||
loadingFinished = true;
|
||||
@ -235,11 +235,7 @@ import org.checkerframework.checker.nullness.qual.MonotonicNonNull;
|
||||
|
||||
@Override
|
||||
public void onLoadCanceled(
|
||||
SourceLoadable loadable,
|
||||
long loadTaskId,
|
||||
long elapsedRealtimeMs,
|
||||
long loadDurationMs,
|
||||
boolean released) {
|
||||
SourceLoadable loadable, long elapsedRealtimeMs, long loadDurationMs, boolean released) {
|
||||
eventDispatcher.loadCanceled(
|
||||
loadable.dataSpec,
|
||||
loadable.dataSource.getLastOpenedUri(),
|
||||
@ -259,7 +255,6 @@ import org.checkerframework.checker.nullness.qual.MonotonicNonNull;
|
||||
@Override
|
||||
public LoadErrorAction onLoadError(
|
||||
SourceLoadable loadable,
|
||||
long loadTaskId,
|
||||
long elapsedRealtimeMs,
|
||||
long loadDurationMs,
|
||||
IOException error,
|
||||
|
@ -393,8 +393,7 @@ public class ChunkSampleStream<T extends ChunkSource> implements SampleStream, S
|
||||
// Loader.Callback implementation.
|
||||
|
||||
@Override
|
||||
public void onLoadCompleted(
|
||||
Chunk loadable, long loadTaskId, long elapsedRealtimeMs, long loadDurationMs) {
|
||||
public void onLoadCompleted(Chunk loadable, long elapsedRealtimeMs, long loadDurationMs) {
|
||||
chunkSource.onChunkLoadCompleted(loadable);
|
||||
eventDispatcher.loadCompleted(
|
||||
loadable.dataSpec,
|
||||
@ -415,11 +414,7 @@ public class ChunkSampleStream<T extends ChunkSource> implements SampleStream, S
|
||||
|
||||
@Override
|
||||
public void onLoadCanceled(
|
||||
Chunk loadable,
|
||||
long loadTaskId,
|
||||
long elapsedRealtimeMs,
|
||||
long loadDurationMs,
|
||||
boolean released) {
|
||||
Chunk loadable, long elapsedRealtimeMs, long loadDurationMs, boolean released) {
|
||||
eventDispatcher.loadCanceled(
|
||||
loadable.dataSpec,
|
||||
loadable.getUri(),
|
||||
@ -446,7 +441,6 @@ public class ChunkSampleStream<T extends ChunkSource> implements SampleStream, S
|
||||
@Override
|
||||
public LoadErrorAction onLoadError(
|
||||
Chunk loadable,
|
||||
long loadTaskId,
|
||||
long elapsedRealtimeMs,
|
||||
long loadDurationMs,
|
||||
IOException error,
|
||||
|
@ -23,7 +23,6 @@ import android.os.SystemClock;
|
||||
import androidx.annotation.IntDef;
|
||||
import androidx.annotation.Nullable;
|
||||
import com.google.android.exoplayer2.C;
|
||||
import com.google.android.exoplayer2.source.LoadEventInfo;
|
||||
import com.google.android.exoplayer2.util.Assertions;
|
||||
import com.google.android.exoplayer2.util.Log;
|
||||
import com.google.android.exoplayer2.util.TraceUtil;
|
||||
@ -80,12 +79,11 @@ public final class Loader implements LoaderErrorThrower {
|
||||
* and this callback being called.
|
||||
*
|
||||
* @param loadable The loadable whose load has completed.
|
||||
* @param loadTaskId A non-negative identifier for the load task. Remains associated to the load
|
||||
* task after retries until completion or cancellation.
|
||||
* @param elapsedRealtimeMs {@link SystemClock#elapsedRealtime} when the load ended.
|
||||
* @param loadDurationMs The duration in milliseconds of the load since {@link #startLoading}
|
||||
* was called.
|
||||
*/
|
||||
void onLoadCompleted(T loadable, long loadTaskId, long elapsedRealtimeMs, long loadDurationMs);
|
||||
void onLoadCompleted(T loadable, long elapsedRealtimeMs, long loadDurationMs);
|
||||
|
||||
/**
|
||||
* Called when a load has been canceled.
|
||||
@ -96,15 +94,13 @@ public final class Loader implements LoaderErrorThrower {
|
||||
* exits.
|
||||
*
|
||||
* @param loadable The loadable whose load has been canceled.
|
||||
* @param loadTaskId A non-negative identifier for the load task. Remains associated to the load
|
||||
* task after retries until completion or cancellation.
|
||||
* @param elapsedRealtimeMs {@link SystemClock#elapsedRealtime} when the load was canceled.
|
||||
* @param loadDurationMs The duration in milliseconds of the load since {@link #startLoading}
|
||||
* was called up to the point at which it was canceled.
|
||||
* @param released True if the load was canceled because the {@link Loader} was released. False
|
||||
* otherwise.
|
||||
*/
|
||||
void onLoadCanceled(
|
||||
T loadable, long loadTaskId, long elapsedRealtimeMs, long loadDurationMs, boolean released);
|
||||
void onLoadCanceled(T loadable, long elapsedRealtimeMs, long loadDurationMs, boolean released);
|
||||
|
||||
/**
|
||||
* Called when a load encounters an error.
|
||||
@ -113,8 +109,6 @@ public final class Loader implements LoaderErrorThrower {
|
||||
* and this callback being called.
|
||||
*
|
||||
* @param loadable The loadable whose load has encountered an error.
|
||||
* @param loadTaskId A non-negative identifier for the load task. Remains associated to the load
|
||||
* task after retries until completion or cancellation.
|
||||
* @param elapsedRealtimeMs {@link SystemClock#elapsedRealtime} when the error occurred.
|
||||
* @param loadDurationMs The duration in milliseconds of the load since {@link #startLoading}
|
||||
* was called up to the point at which the error occurred.
|
||||
@ -125,12 +119,7 @@ public final class Loader implements LoaderErrorThrower {
|
||||
* Loader#DONT_RETRY_FATAL} or a retry action created by {@link #createRetryAction}.
|
||||
*/
|
||||
LoadErrorAction onLoadError(
|
||||
T loadable,
|
||||
long loadTaskId,
|
||||
long elapsedRealtimeMs,
|
||||
long loadDurationMs,
|
||||
IOException error,
|
||||
int errorCount);
|
||||
T loadable, long elapsedRealtimeMs, long loadDurationMs, IOException error, int errorCount);
|
||||
}
|
||||
|
||||
/**
|
||||
@ -177,7 +166,10 @@ public final class Loader implements LoaderErrorThrower {
|
||||
public static final LoadErrorAction DONT_RETRY_FATAL =
|
||||
new LoadErrorAction(ACTION_TYPE_DONT_RETRY_FATAL, C.TIME_UNSET);
|
||||
|
||||
/** Action that can be taken in response to {@link Callback#onLoadError}. */
|
||||
/**
|
||||
* Action that can be taken in response to {@link Callback#onLoadError(Loadable, long, long,
|
||||
* IOException, int)}.
|
||||
*/
|
||||
public static final class LoadErrorAction {
|
||||
|
||||
private final @RetryActionType int type;
|
||||
@ -323,7 +315,6 @@ public final class Loader implements LoaderErrorThrower {
|
||||
public final int defaultMinRetryCount;
|
||||
|
||||
private final T loadable;
|
||||
private final long id;
|
||||
private final long startTimeMs;
|
||||
|
||||
@Nullable private Loader.Callback<T> callback;
|
||||
@ -337,7 +328,6 @@ public final class Loader implements LoaderErrorThrower {
|
||||
public LoadTask(Looper looper, T loadable, Loader.Callback<T> callback,
|
||||
int defaultMinRetryCount, long startTimeMs) {
|
||||
super(looper);
|
||||
id = LoadEventInfo.getNewId();
|
||||
this.loadable = loadable;
|
||||
this.callback = callback;
|
||||
this.defaultMinRetryCount = defaultMinRetryCount;
|
||||
@ -380,7 +370,7 @@ public final class Loader implements LoaderErrorThrower {
|
||||
finish();
|
||||
long nowMs = SystemClock.elapsedRealtime();
|
||||
Assertions.checkNotNull(callback)
|
||||
.onLoadCanceled(loadable, id, nowMs, nowMs - startTimeMs, true);
|
||||
.onLoadCanceled(loadable, nowMs, nowMs - startTimeMs, true);
|
||||
// If loading, this task will be referenced from a GC root (the loading thread) until
|
||||
// cancellation completes. The time taken for cancellation to complete depends on the
|
||||
// implementation of the Loadable that the task is loading. We null the callback reference
|
||||
@ -451,16 +441,16 @@ public final class Loader implements LoaderErrorThrower {
|
||||
long durationMs = nowMs - startTimeMs;
|
||||
Loader.Callback<T> callback = Assertions.checkNotNull(this.callback);
|
||||
if (canceled) {
|
||||
callback.onLoadCanceled(loadable, id, nowMs, durationMs, false);
|
||||
callback.onLoadCanceled(loadable, nowMs, durationMs, false);
|
||||
return;
|
||||
}
|
||||
switch (msg.what) {
|
||||
case MSG_CANCEL:
|
||||
callback.onLoadCanceled(loadable, id, nowMs, durationMs, false);
|
||||
callback.onLoadCanceled(loadable, nowMs, durationMs, false);
|
||||
break;
|
||||
case MSG_END_OF_SOURCE:
|
||||
try {
|
||||
callback.onLoadCompleted(loadable, id, nowMs, durationMs);
|
||||
callback.onLoadCompleted(loadable, nowMs, durationMs);
|
||||
} catch (RuntimeException e) {
|
||||
// This should never happen, but handle it anyway.
|
||||
Log.e(TAG, "Unexpected exception handling load completed", e);
|
||||
@ -471,7 +461,7 @@ public final class Loader implements LoaderErrorThrower {
|
||||
currentError = (IOException) msg.obj;
|
||||
errorCount++;
|
||||
LoadErrorAction action =
|
||||
callback.onLoadError(loadable, id, nowMs, durationMs, currentError, errorCount);
|
||||
callback.onLoadError(loadable, nowMs, durationMs, currentError, errorCount);
|
||||
if (action.type == ACTION_TYPE_DONT_RETRY_FATAL) {
|
||||
fatalError = currentError;
|
||||
} else if (action.type != ACTION_TYPE_DONT_RETRY) {
|
||||
|
@ -281,8 +281,7 @@ public final class SntpClient {
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onLoadCompleted(
|
||||
Loadable loadable, long loadTaskId, long elapsedRealtimeMs, long loadDurationMs) {
|
||||
public void onLoadCompleted(Loadable loadable, long elapsedRealtimeMs, long loadDurationMs) {
|
||||
Assertions.checkState(SntpClient.isInitialized());
|
||||
if (callback != null) {
|
||||
callback.onInitialized();
|
||||
@ -291,18 +290,13 @@ public final class SntpClient {
|
||||
|
||||
@Override
|
||||
public void onLoadCanceled(
|
||||
Loadable loadable,
|
||||
long loadTaskId,
|
||||
long elapsedRealtimeMs,
|
||||
long loadDurationMs,
|
||||
boolean released) {
|
||||
Loadable loadable, long elapsedRealtimeMs, long loadDurationMs, boolean released) {
|
||||
// Ignore.
|
||||
}
|
||||
|
||||
@Override
|
||||
public LoadErrorAction onLoadError(
|
||||
Loadable loadable,
|
||||
long loadTaskId,
|
||||
long elapsedRealtimeMs,
|
||||
long loadDurationMs,
|
||||
IOException error,
|
||||
|
@ -73,7 +73,6 @@ import com.google.android.exoplayer2.trackselection.TrackSelectionArray;
|
||||
import com.google.android.exoplayer2.upstream.Allocation;
|
||||
import com.google.android.exoplayer2.upstream.Allocator;
|
||||
import com.google.android.exoplayer2.upstream.Loader;
|
||||
import com.google.android.exoplayer2.upstream.Loader.Loadable;
|
||||
import com.google.android.exoplayer2.upstream.TransferListener;
|
||||
import com.google.android.exoplayer2.util.Assertions;
|
||||
import com.google.android.exoplayer2.util.Clock;
|
||||
@ -6364,20 +6363,15 @@ public final class ExoPlayerTest {
|
||||
private static final class DummyLoaderCallback implements Loader.Callback<Loader.Loadable> {
|
||||
@Override
|
||||
public void onLoadCompleted(
|
||||
Loadable loadable, long loadTaskId, long elapsedRealtimeMs, long loadDurationMs) {}
|
||||
Loader.Loadable loadable, long elapsedRealtimeMs, long loadDurationMs) {}
|
||||
|
||||
@Override
|
||||
public void onLoadCanceled(
|
||||
Loadable loadable,
|
||||
long loadTaskId,
|
||||
long elapsedRealtimeMs,
|
||||
long loadDurationMs,
|
||||
boolean released) {}
|
||||
Loader.Loadable loadable, long elapsedRealtimeMs, long loadDurationMs, boolean released) {}
|
||||
|
||||
@Override
|
||||
public Loader.LoadErrorAction onLoadError(
|
||||
Loadable loadable,
|
||||
long loadTaskId,
|
||||
Loader.Loadable loadable,
|
||||
long elapsedRealtimeMs,
|
||||
long loadDurationMs,
|
||||
IOException error,
|
||||
|
@ -1348,17 +1348,13 @@ public final class DashMediaSource extends BaseMediaSource {
|
||||
|
||||
@Override
|
||||
public void onLoadCompleted(
|
||||
ParsingLoadable<DashManifest> loadable,
|
||||
long loadTaskId,
|
||||
long elapsedRealtimeMs,
|
||||
long loadDurationMs) {
|
||||
ParsingLoadable<DashManifest> loadable, long elapsedRealtimeMs, long loadDurationMs) {
|
||||
onManifestLoadCompleted(loadable, elapsedRealtimeMs, loadDurationMs);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onLoadCanceled(
|
||||
ParsingLoadable<DashManifest> loadable,
|
||||
long loadTaskId,
|
||||
long elapsedRealtimeMs,
|
||||
long loadDurationMs,
|
||||
boolean released) {
|
||||
@ -1368,7 +1364,6 @@ public final class DashMediaSource extends BaseMediaSource {
|
||||
@Override
|
||||
public LoadErrorAction onLoadError(
|
||||
ParsingLoadable<DashManifest> loadable,
|
||||
long loadTaskId,
|
||||
long elapsedRealtimeMs,
|
||||
long loadDurationMs,
|
||||
IOException error,
|
||||
@ -1382,17 +1377,13 @@ public final class DashMediaSource extends BaseMediaSource {
|
||||
|
||||
@Override
|
||||
public void onLoadCompleted(
|
||||
ParsingLoadable<Long> loadable,
|
||||
long loadTaskId,
|
||||
long elapsedRealtimeMs,
|
||||
long loadDurationMs) {
|
||||
ParsingLoadable<Long> loadable, long elapsedRealtimeMs, long loadDurationMs) {
|
||||
onUtcTimestampLoadCompleted(loadable, elapsedRealtimeMs, loadDurationMs);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onLoadCanceled(
|
||||
ParsingLoadable<Long> loadable,
|
||||
long loadTaskId,
|
||||
long elapsedRealtimeMs,
|
||||
long loadDurationMs,
|
||||
boolean released) {
|
||||
@ -1402,7 +1393,6 @@ public final class DashMediaSource extends BaseMediaSource {
|
||||
@Override
|
||||
public LoadErrorAction onLoadError(
|
||||
ParsingLoadable<Long> loadable,
|
||||
long loadTaskId,
|
||||
long elapsedRealtimeMs,
|
||||
long loadDurationMs,
|
||||
IOException error,
|
||||
|
@ -703,8 +703,7 @@ import org.checkerframework.checker.nullness.qual.RequiresNonNull;
|
||||
// Loader.Callback implementation.
|
||||
|
||||
@Override
|
||||
public void onLoadCompleted(
|
||||
Chunk loadable, long loadTaskId, long elapsedRealtimeMs, long loadDurationMs) {
|
||||
public void onLoadCompleted(Chunk loadable, long elapsedRealtimeMs, long loadDurationMs) {
|
||||
chunkSource.onChunkLoadCompleted(loadable);
|
||||
eventDispatcher.loadCompleted(
|
||||
loadable.dataSpec,
|
||||
@ -729,11 +728,7 @@ import org.checkerframework.checker.nullness.qual.RequiresNonNull;
|
||||
|
||||
@Override
|
||||
public void onLoadCanceled(
|
||||
Chunk loadable,
|
||||
long loadTaskId,
|
||||
long elapsedRealtimeMs,
|
||||
long loadDurationMs,
|
||||
boolean released) {
|
||||
Chunk loadable, long elapsedRealtimeMs, long loadDurationMs, boolean released) {
|
||||
eventDispatcher.loadCanceled(
|
||||
loadable.dataSpec,
|
||||
loadable.getUri(),
|
||||
@ -759,7 +754,6 @@ import org.checkerframework.checker.nullness.qual.RequiresNonNull;
|
||||
@Override
|
||||
public LoadErrorAction onLoadError(
|
||||
Chunk loadable,
|
||||
long loadTaskId,
|
||||
long elapsedRealtimeMs,
|
||||
long loadDurationMs,
|
||||
IOException error,
|
||||
|
@ -221,10 +221,7 @@ public final class DefaultHlsPlaylistTracker
|
||||
|
||||
@Override
|
||||
public void onLoadCompleted(
|
||||
ParsingLoadable<HlsPlaylist> loadable,
|
||||
long loadTaskId,
|
||||
long elapsedRealtimeMs,
|
||||
long loadDurationMs) {
|
||||
ParsingLoadable<HlsPlaylist> loadable, long elapsedRealtimeMs, long loadDurationMs) {
|
||||
HlsPlaylist result = loadable.getResult();
|
||||
HlsMasterPlaylist masterPlaylist;
|
||||
boolean isMediaPlaylist = result instanceof HlsMediaPlaylist;
|
||||
@ -257,7 +254,6 @@ public final class DefaultHlsPlaylistTracker
|
||||
@Override
|
||||
public void onLoadCanceled(
|
||||
ParsingLoadable<HlsPlaylist> loadable,
|
||||
long loadTaskId,
|
||||
long elapsedRealtimeMs,
|
||||
long loadDurationMs,
|
||||
boolean released) {
|
||||
@ -274,7 +270,6 @@ public final class DefaultHlsPlaylistTracker
|
||||
@Override
|
||||
public LoadErrorAction onLoadError(
|
||||
ParsingLoadable<HlsPlaylist> loadable,
|
||||
long loadTaskId,
|
||||
long elapsedRealtimeMs,
|
||||
long loadDurationMs,
|
||||
IOException error,
|
||||
@ -521,10 +516,7 @@ public final class DefaultHlsPlaylistTracker
|
||||
|
||||
@Override
|
||||
public void onLoadCompleted(
|
||||
ParsingLoadable<HlsPlaylist> loadable,
|
||||
long loadTaskId,
|
||||
long elapsedRealtimeMs,
|
||||
long loadDurationMs) {
|
||||
ParsingLoadable<HlsPlaylist> loadable, long elapsedRealtimeMs, long loadDurationMs) {
|
||||
HlsPlaylist result = loadable.getResult();
|
||||
if (result instanceof HlsMediaPlaylist) {
|
||||
processLoadedPlaylist((HlsMediaPlaylist) result, loadDurationMs);
|
||||
@ -544,7 +536,6 @@ public final class DefaultHlsPlaylistTracker
|
||||
@Override
|
||||
public void onLoadCanceled(
|
||||
ParsingLoadable<HlsPlaylist> loadable,
|
||||
long loadTaskId,
|
||||
long elapsedRealtimeMs,
|
||||
long loadDurationMs,
|
||||
boolean released) {
|
||||
@ -561,7 +552,6 @@ public final class DefaultHlsPlaylistTracker
|
||||
@Override
|
||||
public LoadErrorAction onLoadError(
|
||||
ParsingLoadable<HlsPlaylist> loadable,
|
||||
long loadTaskId,
|
||||
long elapsedRealtimeMs,
|
||||
long loadDurationMs,
|
||||
IOException error,
|
||||
|
@ -619,10 +619,7 @@ public final class SsMediaSource extends BaseMediaSource
|
||||
|
||||
@Override
|
||||
public void onLoadCompleted(
|
||||
ParsingLoadable<SsManifest> loadable,
|
||||
long loadTaskId,
|
||||
long elapsedRealtimeMs,
|
||||
long loadDurationMs) {
|
||||
ParsingLoadable<SsManifest> loadable, long elapsedRealtimeMs, long loadDurationMs) {
|
||||
manifestEventDispatcher.loadCompleted(
|
||||
loadable.dataSpec,
|
||||
loadable.getUri(),
|
||||
@ -640,7 +637,6 @@ public final class SsMediaSource extends BaseMediaSource
|
||||
@Override
|
||||
public void onLoadCanceled(
|
||||
ParsingLoadable<SsManifest> loadable,
|
||||
long loadTaskId,
|
||||
long elapsedRealtimeMs,
|
||||
long loadDurationMs,
|
||||
boolean released) {
|
||||
@ -657,7 +653,6 @@ public final class SsMediaSource extends BaseMediaSource
|
||||
@Override
|
||||
public LoadErrorAction onLoadError(
|
||||
ParsingLoadable<SsManifest> loadable,
|
||||
long loadTaskId,
|
||||
long elapsedRealtimeMs,
|
||||
long loadDurationMs,
|
||||
IOException error,
|
||||
|
Loading…
x
Reference in New Issue
Block a user