Skip to content
Toggle navigation
P
Projects
G
Groups
S
Snippets
Help
SDK
/
exoplayer
This project
Loading...
Sign in
Toggle navigation
Go to a project
Project
Repository
Issues
0
Merge Requests
0
Pipelines
Wiki
Snippets
Settings
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Commit
ca799716
authored
Mar 28, 2020
by
aquilescanta
Committed by
Oliver Woodman
Mar 30, 2020
Browse files
Options
_('Browse Files')
Download
Email Patches
Plain Diff
Add loadTaskId to Loader.Callback
PiperOrigin-RevId: 303447837
parent
1c11febf
Hide whitespace changes
Inline
Side-by-side
Showing
11 changed files
with
129 additions
and
42 deletions
library/core/src/main/java/com/google/android/exoplayer2/source/LoadEventInfo.java
library/core/src/main/java/com/google/android/exoplayer2/source/ProgressiveMediaPeriod.java
library/core/src/main/java/com/google/android/exoplayer2/source/SingleSampleMediaPeriod.java
library/core/src/main/java/com/google/android/exoplayer2/source/chunk/ChunkSampleStream.java
library/core/src/main/java/com/google/android/exoplayer2/upstream/Loader.java
library/core/src/main/java/com/google/android/exoplayer2/util/SntpClient.java
library/core/src/test/java/com/google/android/exoplayer2/ExoPlayerTest.java
library/dash/src/main/java/com/google/android/exoplayer2/source/dash/DashMediaSource.java
library/hls/src/main/java/com/google/android/exoplayer2/source/hls/HlsSampleStreamWrapper.java
library/hls/src/main/java/com/google/android/exoplayer2/source/hls/playlist/DefaultHlsPlaylistTracker.java
library/smoothstreaming/src/main/java/com/google/android/exoplayer2/source/smoothstreaming/SsMediaSource.java
library/core/src/main/java/com/google/android/exoplayer2/source/LoadEventInfo.java
View file @
ca799716
...
@@ -20,10 +20,19 @@ import android.os.SystemClock;
...
@@ -20,10 +20,19 @@ import android.os.SystemClock;
import
com.google.android.exoplayer2.upstream.DataSpec
;
import
com.google.android.exoplayer2.upstream.DataSpec
;
import
java.util.List
;
import
java.util.List
;
import
java.util.Map
;
import
java.util.Map
;
import
java.util.concurrent.atomic.AtomicLong
;
/** {@link MediaSource} load event information. */
/** {@link MediaSource} load event information. */
public
final
class
LoadEventInfo
{
public
final
class
LoadEventInfo
{
/** Used for the generation of unique ids. */
private
static
final
AtomicLong
idSource
=
new
AtomicLong
();
/** Returns an non-negative identifier which is unique to the JVM instance. */
public
static
long
getNewId
()
{
return
idSource
.
getAndIncrement
();
}
/** Defines the requested data. */
/** Defines the requested data. */
public
final
DataSpec
dataSpec
;
public
final
DataSpec
dataSpec
;
/**
/**
...
...
library/core/src/main/java/com/google/android/exoplayer2/source/ProgressiveMediaPeriod.java
View file @
ca799716
...
@@ -543,8 +543,8 @@ import org.checkerframework.checker.nullness.qual.MonotonicNonNull;
...
@@ -543,8 +543,8 @@ import org.checkerframework.checker.nullness.qual.MonotonicNonNull;
// Loader.Callback implementation.
// Loader.Callback implementation.
@Override
@Override
public
void
onLoadCompleted
(
ExtractingLoadable
loadable
,
long
elapsedRealtimeMs
,
public
void
onLoadCompleted
(
long
loadDurationMs
)
{
ExtractingLoadable
loadable
,
long
loadTaskId
,
long
elapsedRealtimeMs
,
long
loadDurationMs
)
{
if
(
durationUs
==
C
.
TIME_UNSET
&&
seekMap
!=
null
)
{
if
(
durationUs
==
C
.
TIME_UNSET
&&
seekMap
!=
null
)
{
boolean
isSeekable
=
seekMap
.
isSeekable
();
boolean
isSeekable
=
seekMap
.
isSeekable
();
long
largestQueuedTimestampUs
=
getLargestQueuedTimestampUs
();
long
largestQueuedTimestampUs
=
getLargestQueuedTimestampUs
();
...
@@ -572,8 +572,12 @@ import org.checkerframework.checker.nullness.qual.MonotonicNonNull;
...
@@ -572,8 +572,12 @@ import org.checkerframework.checker.nullness.qual.MonotonicNonNull;
}
}
@Override
@Override
public
void
onLoadCanceled
(
ExtractingLoadable
loadable
,
long
elapsedRealtimeMs
,
public
void
onLoadCanceled
(
long
loadDurationMs
,
boolean
released
)
{
ExtractingLoadable
loadable
,
long
loadTaskId
,
long
elapsedRealtimeMs
,
long
loadDurationMs
,
boolean
released
)
{
eventDispatcher
.
loadCanceled
(
eventDispatcher
.
loadCanceled
(
loadable
.
dataSpec
,
loadable
.
dataSpec
,
loadable
.
dataSource
.
getLastOpenedUri
(),
loadable
.
dataSource
.
getLastOpenedUri
(),
...
@@ -602,6 +606,7 @@ import org.checkerframework.checker.nullness.qual.MonotonicNonNull;
...
@@ -602,6 +606,7 @@ import org.checkerframework.checker.nullness.qual.MonotonicNonNull;
@Override
@Override
public
LoadErrorAction
onLoadError
(
public
LoadErrorAction
onLoadError
(
ExtractingLoadable
loadable
,
ExtractingLoadable
loadable
,
long
loadTaskId
,
long
elapsedRealtimeMs
,
long
elapsedRealtimeMs
,
long
loadDurationMs
,
long
loadDurationMs
,
IOException
error
,
IOException
error
,
...
...
library/core/src/main/java/com/google/android/exoplayer2/source/SingleSampleMediaPeriod.java
View file @
ca799716
...
@@ -212,8 +212,8 @@ import org.checkerframework.checker.nullness.qual.MonotonicNonNull;
...
@@ -212,8 +212,8 @@ import org.checkerframework.checker.nullness.qual.MonotonicNonNull;
// Loader.Callback implementation.
// Loader.Callback implementation.
@Override
@Override
public
void
onLoadCompleted
(
SourceLoadable
loadable
,
long
elapsedRealtimeMs
,
public
void
onLoadCompleted
(
long
loadDurationMs
)
{
SourceLoadable
loadable
,
long
loadTaskId
,
long
elapsedRealtimeMs
,
long
loadDurationMs
)
{
sampleSize
=
(
int
)
loadable
.
dataSource
.
getBytesRead
();
sampleSize
=
(
int
)
loadable
.
dataSource
.
getBytesRead
();
sampleData
=
Assertions
.
checkNotNull
(
loadable
.
sampleData
);
sampleData
=
Assertions
.
checkNotNull
(
loadable
.
sampleData
);
loadingFinished
=
true
;
loadingFinished
=
true
;
...
@@ -234,7 +234,11 @@ import org.checkerframework.checker.nullness.qual.MonotonicNonNull;
...
@@ -234,7 +234,11 @@ import org.checkerframework.checker.nullness.qual.MonotonicNonNull;
}
}
@Override
@Override
public
void
onLoadCanceled
(
SourceLoadable
loadable
,
long
elapsedRealtimeMs
,
long
loadDurationMs
,
public
void
onLoadCanceled
(
SourceLoadable
loadable
,
long
loadTaskId
,
long
elapsedRealtimeMs
,
long
loadDurationMs
,
boolean
released
)
{
boolean
released
)
{
eventDispatcher
.
loadCanceled
(
eventDispatcher
.
loadCanceled
(
loadable
.
dataSpec
,
loadable
.
dataSpec
,
...
@@ -255,6 +259,7 @@ import org.checkerframework.checker.nullness.qual.MonotonicNonNull;
...
@@ -255,6 +259,7 @@ import org.checkerframework.checker.nullness.qual.MonotonicNonNull;
@Override
@Override
public
LoadErrorAction
onLoadError
(
public
LoadErrorAction
onLoadError
(
SourceLoadable
loadable
,
SourceLoadable
loadable
,
long
loadTaskId
,
long
elapsedRealtimeMs
,
long
elapsedRealtimeMs
,
long
loadDurationMs
,
long
loadDurationMs
,
IOException
error
,
IOException
error
,
...
...
library/core/src/main/java/com/google/android/exoplayer2/source/chunk/ChunkSampleStream.java
View file @
ca799716
...
@@ -393,7 +393,8 @@ public class ChunkSampleStream<T extends ChunkSource> implements SampleStream, S
...
@@ -393,7 +393,8 @@ public class ChunkSampleStream<T extends ChunkSource> implements SampleStream, S
// Loader.Callback implementation.
// Loader.Callback implementation.
@Override
@Override
public
void
onLoadCompleted
(
Chunk
loadable
,
long
elapsedRealtimeMs
,
long
loadDurationMs
)
{
public
void
onLoadCompleted
(
Chunk
loadable
,
long
loadTaskId
,
long
elapsedRealtimeMs
,
long
loadDurationMs
)
{
chunkSource
.
onChunkLoadCompleted
(
loadable
);
chunkSource
.
onChunkLoadCompleted
(
loadable
);
eventDispatcher
.
loadCompleted
(
eventDispatcher
.
loadCompleted
(
loadable
.
dataSpec
,
loadable
.
dataSpec
,
...
@@ -413,7 +414,11 @@ public class ChunkSampleStream<T extends ChunkSource> implements SampleStream, S
...
@@ -413,7 +414,11 @@ public class ChunkSampleStream<T extends ChunkSource> implements SampleStream, S
}
}
@Override
@Override
public
void
onLoadCanceled
(
Chunk
loadable
,
long
elapsedRealtimeMs
,
long
loadDurationMs
,
public
void
onLoadCanceled
(
Chunk
loadable
,
long
loadTaskId
,
long
elapsedRealtimeMs
,
long
loadDurationMs
,
boolean
released
)
{
boolean
released
)
{
eventDispatcher
.
loadCanceled
(
eventDispatcher
.
loadCanceled
(
loadable
.
dataSpec
,
loadable
.
dataSpec
,
...
@@ -441,6 +446,7 @@ public class ChunkSampleStream<T extends ChunkSource> implements SampleStream, S
...
@@ -441,6 +446,7 @@ public class ChunkSampleStream<T extends ChunkSource> implements SampleStream, S
@Override
@Override
public
LoadErrorAction
onLoadError
(
public
LoadErrorAction
onLoadError
(
Chunk
loadable
,
Chunk
loadable
,
long
loadTaskId
,
long
elapsedRealtimeMs
,
long
elapsedRealtimeMs
,
long
loadDurationMs
,
long
loadDurationMs
,
IOException
error
,
IOException
error
,
...
...
library/core/src/main/java/com/google/android/exoplayer2/upstream/Loader.java
View file @
ca799716
...
@@ -23,6 +23,7 @@ import android.os.SystemClock;
...
@@ -23,6 +23,7 @@ import android.os.SystemClock;
import
androidx.annotation.IntDef
;
import
androidx.annotation.IntDef
;
import
androidx.annotation.Nullable
;
import
androidx.annotation.Nullable
;
import
com.google.android.exoplayer2.C
;
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.Assertions
;
import
com.google.android.exoplayer2.util.Log
;
import
com.google.android.exoplayer2.util.Log
;
import
com.google.android.exoplayer2.util.TraceUtil
;
import
com.google.android.exoplayer2.util.TraceUtil
;
...
@@ -79,11 +80,12 @@ public final class Loader implements LoaderErrorThrower {
...
@@ -79,11 +80,12 @@ public final class Loader implements LoaderErrorThrower {
* and this callback being called.
* and this callback being called.
*
*
* @param loadable The loadable whose load has completed.
* @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 elapsedRealtimeMs {@link SystemClock#elapsedRealtime} when the load ended.
* @param loadDurationMs The duration in milliseconds of the load since {@link #startLoading}
* @param loadDurationMs The duration in milliseconds of the load since {@link #startLoading}
* was called.
*/
*/
void
onLoadCompleted
(
T
loadable
,
long
elapsedRealtimeMs
,
long
loadDurationMs
);
void
onLoadCompleted
(
T
loadable
,
long
loadTaskId
,
long
elapsedRealtimeMs
,
long
loadDurationMs
);
/**
/**
* Called when a load has been canceled.
* Called when a load has been canceled.
...
@@ -94,13 +96,15 @@ public final class Loader implements LoaderErrorThrower {
...
@@ -94,13 +96,15 @@ public final class Loader implements LoaderErrorThrower {
* exits.
* exits.
*
*
* @param loadable The loadable whose load has been canceled.
* @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 elapsedRealtimeMs {@link SystemClock#elapsedRealtime} when the load was canceled.
* @param loadDurationMs The duration in milliseconds of the load since {@link #startLoading}
* @param loadDurationMs The duration in milliseconds of the load since {@link #startLoading}
* was called up to the point at which it was canceled.
* 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
* @param released True if the load was canceled because the {@link Loader} was released. False
* otherwise.
*/
*/
void
onLoadCanceled
(
T
loadable
,
long
elapsedRealtimeMs
,
long
loadDurationMs
,
boolean
released
);
void
onLoadCanceled
(
T
loadable
,
long
loadTaskId
,
long
elapsedRealtimeMs
,
long
loadDurationMs
,
boolean
released
);
/**
/**
* Called when a load encounters an error.
* Called when a load encounters an error.
...
@@ -109,6 +113,8 @@ public final class Loader implements LoaderErrorThrower {
...
@@ -109,6 +113,8 @@ public final class Loader implements LoaderErrorThrower {
* and this callback being called.
* and this callback being called.
*
*
* @param loadable The loadable whose load has encountered an error.
* @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 elapsedRealtimeMs {@link SystemClock#elapsedRealtime} when the error occurred.
* @param loadDurationMs The duration in milliseconds of the load since {@link #startLoading}
* @param loadDurationMs The duration in milliseconds of the load since {@link #startLoading}
* was called up to the point at which the error occurred.
* was called up to the point at which the error occurred.
...
@@ -119,7 +125,12 @@ public final class Loader implements LoaderErrorThrower {
...
@@ -119,7 +125,12 @@ public final class Loader implements LoaderErrorThrower {
* Loader#DONT_RETRY_FATAL} or a retry action created by {@link #createRetryAction}.
* Loader#DONT_RETRY_FATAL} or a retry action created by {@link #createRetryAction}.
*/
*/
LoadErrorAction
onLoadError
(
LoadErrorAction
onLoadError
(
T
loadable
,
long
elapsedRealtimeMs
,
long
loadDurationMs
,
IOException
error
,
int
errorCount
);
T
loadable
,
long
loadTaskId
,
long
elapsedRealtimeMs
,
long
loadDurationMs
,
IOException
error
,
int
errorCount
);
}
}
/**
/**
...
@@ -166,10 +177,7 @@ public final class Loader implements LoaderErrorThrower {
...
@@ -166,10 +177,7 @@ public final class Loader implements LoaderErrorThrower {
public
static
final
LoadErrorAction
DONT_RETRY_FATAL
=
public
static
final
LoadErrorAction
DONT_RETRY_FATAL
=
new
LoadErrorAction
(
ACTION_TYPE_DONT_RETRY_FATAL
,
C
.
TIME_UNSET
);
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
{
public
static
final
class
LoadErrorAction
{
private
final
@RetryActionType
int
type
;
private
final
@RetryActionType
int
type
;
...
@@ -315,6 +323,7 @@ public final class Loader implements LoaderErrorThrower {
...
@@ -315,6 +323,7 @@ public final class Loader implements LoaderErrorThrower {
public
final
int
defaultMinRetryCount
;
public
final
int
defaultMinRetryCount
;
private
final
T
loadable
;
private
final
T
loadable
;
private
final
long
id
;
private
final
long
startTimeMs
;
private
final
long
startTimeMs
;
@Nullable
private
Loader
.
Callback
<
T
>
callback
;
@Nullable
private
Loader
.
Callback
<
T
>
callback
;
...
@@ -328,6 +337,7 @@ public final class Loader implements LoaderErrorThrower {
...
@@ -328,6 +337,7 @@ public final class Loader implements LoaderErrorThrower {
public
LoadTask
(
Looper
looper
,
T
loadable
,
Loader
.
Callback
<
T
>
callback
,
public
LoadTask
(
Looper
looper
,
T
loadable
,
Loader
.
Callback
<
T
>
callback
,
int
defaultMinRetryCount
,
long
startTimeMs
)
{
int
defaultMinRetryCount
,
long
startTimeMs
)
{
super
(
looper
);
super
(
looper
);
id
=
LoadEventInfo
.
getNewId
();
this
.
loadable
=
loadable
;
this
.
loadable
=
loadable
;
this
.
callback
=
callback
;
this
.
callback
=
callback
;
this
.
defaultMinRetryCount
=
defaultMinRetryCount
;
this
.
defaultMinRetryCount
=
defaultMinRetryCount
;
...
@@ -370,7 +380,7 @@ public final class Loader implements LoaderErrorThrower {
...
@@ -370,7 +380,7 @@ public final class Loader implements LoaderErrorThrower {
finish
();
finish
();
long
nowMs
=
SystemClock
.
elapsedRealtime
();
long
nowMs
=
SystemClock
.
elapsedRealtime
();
Assertions
.
checkNotNull
(
callback
)
Assertions
.
checkNotNull
(
callback
)
.
onLoadCanceled
(
loadable
,
nowMs
,
nowMs
-
startTimeMs
,
true
);
.
onLoadCanceled
(
loadable
,
id
,
nowMs
,
nowMs
-
startTimeMs
,
true
);
// If loading, this task will be referenced from a GC root (the loading thread) until
// 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
// 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
// implementation of the Loadable that the task is loading. We null the callback reference
...
@@ -441,16 +451,16 @@ public final class Loader implements LoaderErrorThrower {
...
@@ -441,16 +451,16 @@ public final class Loader implements LoaderErrorThrower {
long
durationMs
=
nowMs
-
startTimeMs
;
long
durationMs
=
nowMs
-
startTimeMs
;
Loader
.
Callback
<
T
>
callback
=
Assertions
.
checkNotNull
(
this
.
callback
);
Loader
.
Callback
<
T
>
callback
=
Assertions
.
checkNotNull
(
this
.
callback
);
if
(
canceled
)
{
if
(
canceled
)
{
callback
.
onLoadCanceled
(
loadable
,
nowMs
,
durationMs
,
false
);
callback
.
onLoadCanceled
(
loadable
,
id
,
nowMs
,
durationMs
,
false
);
return
;
return
;
}
}
switch
(
msg
.
what
)
{
switch
(
msg
.
what
)
{
case
MSG_CANCEL:
case
MSG_CANCEL:
callback
.
onLoadCanceled
(
loadable
,
nowMs
,
durationMs
,
false
);
callback
.
onLoadCanceled
(
loadable
,
id
,
nowMs
,
durationMs
,
false
);
break
;
break
;
case
MSG_END_OF_SOURCE:
case
MSG_END_OF_SOURCE:
try
{
try
{
callback
.
onLoadCompleted
(
loadable
,
nowMs
,
durationMs
);
callback
.
onLoadCompleted
(
loadable
,
id
,
nowMs
,
durationMs
);
}
catch
(
RuntimeException
e
)
{
}
catch
(
RuntimeException
e
)
{
// This should never happen, but handle it anyway.
// This should never happen, but handle it anyway.
Log
.
e
(
TAG
,
"Unexpected exception handling load completed"
,
e
);
Log
.
e
(
TAG
,
"Unexpected exception handling load completed"
,
e
);
...
@@ -461,7 +471,7 @@ public final class Loader implements LoaderErrorThrower {
...
@@ -461,7 +471,7 @@ public final class Loader implements LoaderErrorThrower {
currentError
=
(
IOException
)
msg
.
obj
;
currentError
=
(
IOException
)
msg
.
obj
;
errorCount
++;
errorCount
++;
LoadErrorAction
action
=
LoadErrorAction
action
=
callback
.
onLoadError
(
loadable
,
nowMs
,
durationMs
,
currentError
,
errorCount
);
callback
.
onLoadError
(
loadable
,
id
,
nowMs
,
durationMs
,
currentError
,
errorCount
);
if
(
action
.
type
==
ACTION_TYPE_DONT_RETRY_FATAL
)
{
if
(
action
.
type
==
ACTION_TYPE_DONT_RETRY_FATAL
)
{
fatalError
=
currentError
;
fatalError
=
currentError
;
}
else
if
(
action
.
type
!=
ACTION_TYPE_DONT_RETRY
)
{
}
else
if
(
action
.
type
!=
ACTION_TYPE_DONT_RETRY
)
{
...
...
library/core/src/main/java/com/google/android/exoplayer2/util/SntpClient.java
View file @
ca799716
...
@@ -281,7 +281,8 @@ public final class SntpClient {
...
@@ -281,7 +281,8 @@ public final class SntpClient {
}
}
@Override
@Override
public
void
onLoadCompleted
(
Loadable
loadable
,
long
elapsedRealtimeMs
,
long
loadDurationMs
)
{
public
void
onLoadCompleted
(
Loadable
loadable
,
long
loadTaskId
,
long
elapsedRealtimeMs
,
long
loadDurationMs
)
{
Assertions
.
checkState
(
SntpClient
.
isInitialized
());
Assertions
.
checkState
(
SntpClient
.
isInitialized
());
if
(
callback
!=
null
)
{
if
(
callback
!=
null
)
{
callback
.
onInitialized
();
callback
.
onInitialized
();
...
@@ -290,13 +291,18 @@ public final class SntpClient {
...
@@ -290,13 +291,18 @@ public final class SntpClient {
@Override
@Override
public
void
onLoadCanceled
(
public
void
onLoadCanceled
(
Loadable
loadable
,
long
elapsedRealtimeMs
,
long
loadDurationMs
,
boolean
released
)
{
Loadable
loadable
,
long
loadTaskId
,
long
elapsedRealtimeMs
,
long
loadDurationMs
,
boolean
released
)
{
// Ignore.
// Ignore.
}
}
@Override
@Override
public
LoadErrorAction
onLoadError
(
public
LoadErrorAction
onLoadError
(
Loadable
loadable
,
Loadable
loadable
,
long
loadTaskId
,
long
elapsedRealtimeMs
,
long
elapsedRealtimeMs
,
long
loadDurationMs
,
long
loadDurationMs
,
IOException
error
,
IOException
error
,
...
...
library/core/src/test/java/com/google/android/exoplayer2/ExoPlayerTest.java
View file @
ca799716
...
@@ -73,6 +73,7 @@ import com.google.android.exoplayer2.trackselection.TrackSelectionArray;
...
@@ -73,6 +73,7 @@ import com.google.android.exoplayer2.trackselection.TrackSelectionArray;
import
com.google.android.exoplayer2.upstream.Allocation
;
import
com.google.android.exoplayer2.upstream.Allocation
;
import
com.google.android.exoplayer2.upstream.Allocator
;
import
com.google.android.exoplayer2.upstream.Allocator
;
import
com.google.android.exoplayer2.upstream.Loader
;
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.upstream.TransferListener
;
import
com.google.android.exoplayer2.util.Assertions
;
import
com.google.android.exoplayer2.util.Assertions
;
import
com.google.android.exoplayer2.util.Clock
;
import
com.google.android.exoplayer2.util.Clock
;
...
@@ -6363,15 +6364,20 @@ public final class ExoPlayerTest {
...
@@ -6363,15 +6364,20 @@ public final class ExoPlayerTest {
private
static
final
class
DummyLoaderCallback
implements
Loader
.
Callback
<
Loader
.
Loadable
>
{
private
static
final
class
DummyLoaderCallback
implements
Loader
.
Callback
<
Loader
.
Loadable
>
{
@Override
@Override
public
void
onLoadCompleted
(
public
void
onLoadCompleted
(
Load
er
.
Loadable
loadable
,
long
elapsedRealtimeMs
,
long
loadDurationMs
)
{}
Load
able
loadable
,
long
loadTaskId
,
long
elapsedRealtimeMs
,
long
loadDurationMs
)
{}
@Override
@Override
public
void
onLoadCanceled
(
public
void
onLoadCanceled
(
Loader
.
Loadable
loadable
,
long
elapsedRealtimeMs
,
long
loadDurationMs
,
boolean
released
)
{}
Loadable
loadable
,
long
loadTaskId
,
long
elapsedRealtimeMs
,
long
loadDurationMs
,
boolean
released
)
{}
@Override
@Override
public
Loader
.
LoadErrorAction
onLoadError
(
public
Loader
.
LoadErrorAction
onLoadError
(
Loader
.
Loadable
loadable
,
Loadable
loadable
,
long
loadTaskId
,
long
elapsedRealtimeMs
,
long
elapsedRealtimeMs
,
long
loadDurationMs
,
long
loadDurationMs
,
IOException
error
,
IOException
error
,
...
...
library/dash/src/main/java/com/google/android/exoplayer2/source/dash/DashMediaSource.java
View file @
ca799716
...
@@ -1347,20 +1347,28 @@ public final class DashMediaSource extends BaseMediaSource {
...
@@ -1347,20 +1347,28 @@ public final class DashMediaSource extends BaseMediaSource {
private
final
class
ManifestCallback
implements
Loader
.
Callback
<
ParsingLoadable
<
DashManifest
>>
{
private
final
class
ManifestCallback
implements
Loader
.
Callback
<
ParsingLoadable
<
DashManifest
>>
{
@Override
@Override
public
void
onLoadCompleted
(
ParsingLoadable
<
DashManifest
>
loadable
,
public
void
onLoadCompleted
(
long
elapsedRealtimeMs
,
long
loadDurationMs
)
{
ParsingLoadable
<
DashManifest
>
loadable
,
long
loadTaskId
,
long
elapsedRealtimeMs
,
long
loadDurationMs
)
{
onManifestLoadCompleted
(
loadable
,
elapsedRealtimeMs
,
loadDurationMs
);
onManifestLoadCompleted
(
loadable
,
elapsedRealtimeMs
,
loadDurationMs
);
}
}
@Override
@Override
public
void
onLoadCanceled
(
ParsingLoadable
<
DashManifest
>
loadable
,
public
void
onLoadCanceled
(
long
elapsedRealtimeMs
,
long
loadDurationMs
,
boolean
released
)
{
ParsingLoadable
<
DashManifest
>
loadable
,
long
loadTaskId
,
long
elapsedRealtimeMs
,
long
loadDurationMs
,
boolean
released
)
{
DashMediaSource
.
this
.
onLoadCanceled
(
loadable
,
elapsedRealtimeMs
,
loadDurationMs
);
DashMediaSource
.
this
.
onLoadCanceled
(
loadable
,
elapsedRealtimeMs
,
loadDurationMs
);
}
}
@Override
@Override
public
LoadErrorAction
onLoadError
(
public
LoadErrorAction
onLoadError
(
ParsingLoadable
<
DashManifest
>
loadable
,
ParsingLoadable
<
DashManifest
>
loadable
,
long
loadTaskId
,
long
elapsedRealtimeMs
,
long
elapsedRealtimeMs
,
long
loadDurationMs
,
long
loadDurationMs
,
IOException
error
,
IOException
error
,
...
@@ -1373,20 +1381,28 @@ public final class DashMediaSource extends BaseMediaSource {
...
@@ -1373,20 +1381,28 @@ public final class DashMediaSource extends BaseMediaSource {
private
final
class
UtcTimestampCallback
implements
Loader
.
Callback
<
ParsingLoadable
<
Long
>>
{
private
final
class
UtcTimestampCallback
implements
Loader
.
Callback
<
ParsingLoadable
<
Long
>>
{
@Override
@Override
public
void
onLoadCompleted
(
ParsingLoadable
<
Long
>
loadable
,
long
elapsedRealtimeMs
,
public
void
onLoadCompleted
(
ParsingLoadable
<
Long
>
loadable
,
long
loadTaskId
,
long
elapsedRealtimeMs
,
long
loadDurationMs
)
{
long
loadDurationMs
)
{
onUtcTimestampLoadCompleted
(
loadable
,
elapsedRealtimeMs
,
loadDurationMs
);
onUtcTimestampLoadCompleted
(
loadable
,
elapsedRealtimeMs
,
loadDurationMs
);
}
}
@Override
@Override
public
void
onLoadCanceled
(
ParsingLoadable
<
Long
>
loadable
,
long
elapsedRealtimeMs
,
public
void
onLoadCanceled
(
long
loadDurationMs
,
boolean
released
)
{
ParsingLoadable
<
Long
>
loadable
,
long
loadTaskId
,
long
elapsedRealtimeMs
,
long
loadDurationMs
,
boolean
released
)
{
DashMediaSource
.
this
.
onLoadCanceled
(
loadable
,
elapsedRealtimeMs
,
loadDurationMs
);
DashMediaSource
.
this
.
onLoadCanceled
(
loadable
,
elapsedRealtimeMs
,
loadDurationMs
);
}
}
@Override
@Override
public
LoadErrorAction
onLoadError
(
public
LoadErrorAction
onLoadError
(
ParsingLoadable
<
Long
>
loadable
,
ParsingLoadable
<
Long
>
loadable
,
long
loadTaskId
,
long
elapsedRealtimeMs
,
long
elapsedRealtimeMs
,
long
loadDurationMs
,
long
loadDurationMs
,
IOException
error
,
IOException
error
,
...
...
library/hls/src/main/java/com/google/android/exoplayer2/source/hls/HlsSampleStreamWrapper.java
View file @
ca799716
...
@@ -703,7 +703,8 @@ import org.checkerframework.checker.nullness.qual.RequiresNonNull;
...
@@ -703,7 +703,8 @@ import org.checkerframework.checker.nullness.qual.RequiresNonNull;
// Loader.Callback implementation.
// Loader.Callback implementation.
@Override
@Override
public
void
onLoadCompleted
(
Chunk
loadable
,
long
elapsedRealtimeMs
,
long
loadDurationMs
)
{
public
void
onLoadCompleted
(
Chunk
loadable
,
long
loadTaskId
,
long
elapsedRealtimeMs
,
long
loadDurationMs
)
{
chunkSource
.
onChunkLoadCompleted
(
loadable
);
chunkSource
.
onChunkLoadCompleted
(
loadable
);
eventDispatcher
.
loadCompleted
(
eventDispatcher
.
loadCompleted
(
loadable
.
dataSpec
,
loadable
.
dataSpec
,
...
@@ -727,7 +728,11 @@ import org.checkerframework.checker.nullness.qual.RequiresNonNull;
...
@@ -727,7 +728,11 @@ import org.checkerframework.checker.nullness.qual.RequiresNonNull;
}
}
@Override
@Override
public
void
onLoadCanceled
(
Chunk
loadable
,
long
elapsedRealtimeMs
,
long
loadDurationMs
,
public
void
onLoadCanceled
(
Chunk
loadable
,
long
loadTaskId
,
long
elapsedRealtimeMs
,
long
loadDurationMs
,
boolean
released
)
{
boolean
released
)
{
eventDispatcher
.
loadCanceled
(
eventDispatcher
.
loadCanceled
(
loadable
.
dataSpec
,
loadable
.
dataSpec
,
...
@@ -754,6 +759,7 @@ import org.checkerframework.checker.nullness.qual.RequiresNonNull;
...
@@ -754,6 +759,7 @@ import org.checkerframework.checker.nullness.qual.RequiresNonNull;
@Override
@Override
public
LoadErrorAction
onLoadError
(
public
LoadErrorAction
onLoadError
(
Chunk
loadable
,
Chunk
loadable
,
long
loadTaskId
,
long
elapsedRealtimeMs
,
long
elapsedRealtimeMs
,
long
loadDurationMs
,
long
loadDurationMs
,
IOException
error
,
IOException
error
,
...
...
library/hls/src/main/java/com/google/android/exoplayer2/source/hls/playlist/DefaultHlsPlaylistTracker.java
View file @
ca799716
...
@@ -221,7 +221,10 @@ public final class DefaultHlsPlaylistTracker
...
@@ -221,7 +221,10 @@ public final class DefaultHlsPlaylistTracker
@Override
@Override
public
void
onLoadCompleted
(
public
void
onLoadCompleted
(
ParsingLoadable
<
HlsPlaylist
>
loadable
,
long
elapsedRealtimeMs
,
long
loadDurationMs
)
{
ParsingLoadable
<
HlsPlaylist
>
loadable
,
long
loadTaskId
,
long
elapsedRealtimeMs
,
long
loadDurationMs
)
{
HlsPlaylist
result
=
loadable
.
getResult
();
HlsPlaylist
result
=
loadable
.
getResult
();
HlsMasterPlaylist
masterPlaylist
;
HlsMasterPlaylist
masterPlaylist
;
boolean
isMediaPlaylist
=
result
instanceof
HlsMediaPlaylist
;
boolean
isMediaPlaylist
=
result
instanceof
HlsMediaPlaylist
;
...
@@ -254,6 +257,7 @@ public final class DefaultHlsPlaylistTracker
...
@@ -254,6 +257,7 @@ public final class DefaultHlsPlaylistTracker
@Override
@Override
public
void
onLoadCanceled
(
public
void
onLoadCanceled
(
ParsingLoadable
<
HlsPlaylist
>
loadable
,
ParsingLoadable
<
HlsPlaylist
>
loadable
,
long
loadTaskId
,
long
elapsedRealtimeMs
,
long
elapsedRealtimeMs
,
long
loadDurationMs
,
long
loadDurationMs
,
boolean
released
)
{
boolean
released
)
{
...
@@ -270,6 +274,7 @@ public final class DefaultHlsPlaylistTracker
...
@@ -270,6 +274,7 @@ public final class DefaultHlsPlaylistTracker
@Override
@Override
public
LoadErrorAction
onLoadError
(
public
LoadErrorAction
onLoadError
(
ParsingLoadable
<
HlsPlaylist
>
loadable
,
ParsingLoadable
<
HlsPlaylist
>
loadable
,
long
loadTaskId
,
long
elapsedRealtimeMs
,
long
elapsedRealtimeMs
,
long
loadDurationMs
,
long
loadDurationMs
,
IOException
error
,
IOException
error
,
...
@@ -516,7 +521,10 @@ public final class DefaultHlsPlaylistTracker
...
@@ -516,7 +521,10 @@ public final class DefaultHlsPlaylistTracker
@Override
@Override
public
void
onLoadCompleted
(
public
void
onLoadCompleted
(
ParsingLoadable
<
HlsPlaylist
>
loadable
,
long
elapsedRealtimeMs
,
long
loadDurationMs
)
{
ParsingLoadable
<
HlsPlaylist
>
loadable
,
long
loadTaskId
,
long
elapsedRealtimeMs
,
long
loadDurationMs
)
{
HlsPlaylist
result
=
loadable
.
getResult
();
HlsPlaylist
result
=
loadable
.
getResult
();
if
(
result
instanceof
HlsMediaPlaylist
)
{
if
(
result
instanceof
HlsMediaPlaylist
)
{
processLoadedPlaylist
((
HlsMediaPlaylist
)
result
,
loadDurationMs
);
processLoadedPlaylist
((
HlsMediaPlaylist
)
result
,
loadDurationMs
);
...
@@ -536,6 +544,7 @@ public final class DefaultHlsPlaylistTracker
...
@@ -536,6 +544,7 @@ public final class DefaultHlsPlaylistTracker
@Override
@Override
public
void
onLoadCanceled
(
public
void
onLoadCanceled
(
ParsingLoadable
<
HlsPlaylist
>
loadable
,
ParsingLoadable
<
HlsPlaylist
>
loadable
,
long
loadTaskId
,
long
elapsedRealtimeMs
,
long
elapsedRealtimeMs
,
long
loadDurationMs
,
long
loadDurationMs
,
boolean
released
)
{
boolean
released
)
{
...
@@ -552,6 +561,7 @@ public final class DefaultHlsPlaylistTracker
...
@@ -552,6 +561,7 @@ public final class DefaultHlsPlaylistTracker
@Override
@Override
public
LoadErrorAction
onLoadError
(
public
LoadErrorAction
onLoadError
(
ParsingLoadable
<
HlsPlaylist
>
loadable
,
ParsingLoadable
<
HlsPlaylist
>
loadable
,
long
loadTaskId
,
long
elapsedRealtimeMs
,
long
elapsedRealtimeMs
,
long
loadDurationMs
,
long
loadDurationMs
,
IOException
error
,
IOException
error
,
...
...
library/smoothstreaming/src/main/java/com/google/android/exoplayer2/source/smoothstreaming/SsMediaSource.java
View file @
ca799716
...
@@ -618,7 +618,10 @@ public final class SsMediaSource extends BaseMediaSource
...
@@ -618,7 +618,10 @@ public final class SsMediaSource extends BaseMediaSource
// Loader.Callback implementation
// Loader.Callback implementation
@Override
@Override
public
void
onLoadCompleted
(
ParsingLoadable
<
SsManifest
>
loadable
,
long
elapsedRealtimeMs
,
public
void
onLoadCompleted
(
ParsingLoadable
<
SsManifest
>
loadable
,
long
loadTaskId
,
long
elapsedRealtimeMs
,
long
loadDurationMs
)
{
long
loadDurationMs
)
{
manifestEventDispatcher
.
loadCompleted
(
manifestEventDispatcher
.
loadCompleted
(
loadable
.
dataSpec
,
loadable
.
dataSpec
,
...
@@ -635,8 +638,12 @@ public final class SsMediaSource extends BaseMediaSource
...
@@ -635,8 +638,12 @@ public final class SsMediaSource extends BaseMediaSource
}
}
@Override
@Override
public
void
onLoadCanceled
(
ParsingLoadable
<
SsManifest
>
loadable
,
long
elapsedRealtimeMs
,
public
void
onLoadCanceled
(
long
loadDurationMs
,
boolean
released
)
{
ParsingLoadable
<
SsManifest
>
loadable
,
long
loadTaskId
,
long
elapsedRealtimeMs
,
long
loadDurationMs
,
boolean
released
)
{
manifestEventDispatcher
.
loadCanceled
(
manifestEventDispatcher
.
loadCanceled
(
loadable
.
dataSpec
,
loadable
.
dataSpec
,
loadable
.
getUri
(),
loadable
.
getUri
(),
...
@@ -650,6 +657,7 @@ public final class SsMediaSource extends BaseMediaSource
...
@@ -650,6 +657,7 @@ public final class SsMediaSource extends BaseMediaSource
@Override
@Override
public
LoadErrorAction
onLoadError
(
public
LoadErrorAction
onLoadError
(
ParsingLoadable
<
SsManifest
>
loadable
,
ParsingLoadable
<
SsManifest
>
loadable
,
long
loadTaskId
,
long
elapsedRealtimeMs
,
long
elapsedRealtimeMs
,
long
loadDurationMs
,
long
loadDurationMs
,
IOException
error
,
IOException
error
,
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment