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
0774ee1d
authored
May 01, 2020
by
aquilescanta
Committed by
Oliver Woodman
May 01, 2020
Browse files
Options
_('Browse Files')
Download
Email Patches
Plain Diff
Merge LoadErrorHandlingPolicy cleanup methods
Issue: #7309 PiperOrigin-RevId: 309387483
parent
956514ad
Show whitespace changes
Inline
Side-by-side
Showing
8 changed files
with
56 additions
and
36 deletions
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/LoadErrorHandlingPolicy.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/ProgressiveMediaPeriod.java
View file @
0774ee1d
...
...
@@ -563,7 +563,7 @@ import org.checkerframework.checker.nullness.qual.MonotonicNonNull;
elapsedRealtimeMs
,
loadDurationMs
,
dataSource
.
getBytesRead
());
loadErrorHandlingPolicy
.
onLoad
Completed
(
loadEventInfo
);
loadErrorHandlingPolicy
.
onLoad
TaskConcluded
(
loadable
.
loadTaskId
);
eventDispatcher
.
loadCompleted
(
loadEventInfo
,
C
.
DATA_TYPE_MEDIA
,
...
...
@@ -591,7 +591,7 @@ import org.checkerframework.checker.nullness.qual.MonotonicNonNull;
elapsedRealtimeMs
,
loadDurationMs
,
dataSource
.
getBytesRead
());
loadErrorHandlingPolicy
.
onLoad
Canceled
(
loadEventInfo
);
loadErrorHandlingPolicy
.
onLoad
TaskConcluded
(
loadable
.
loadTaskId
);
eventDispatcher
.
loadCanceled
(
loadEventInfo
,
C
.
DATA_TYPE_MEDIA
,
...
...
@@ -635,6 +635,7 @@ import org.checkerframework.checker.nullness.qual.MonotonicNonNull;
}
StatsDataSource
dataSource
=
loadable
.
dataSource
;
boolean
wasCanceled
=
!
loadErrorAction
.
isRetry
();
eventDispatcher
.
loadError
(
new
LoadEventInfo
(
loadable
.
loadTaskId
,
...
...
@@ -652,7 +653,10 @@ import org.checkerframework.checker.nullness.qual.MonotonicNonNull;
/* mediaStartTimeUs= */
loadable
.
seekTimeUs
,
durationUs
,
error
,
!
loadErrorAction
.
isRetry
());
wasCanceled
);
if
(
wasCanceled
)
{
loadErrorHandlingPolicy
.
onLoadTaskConcluded
(
loadable
.
loadTaskId
);
}
return
loadErrorAction
;
}
...
...
library/core/src/main/java/com/google/android/exoplayer2/source/SingleSampleMediaPeriod.java
View file @
0774ee1d
...
...
@@ -227,7 +227,7 @@ import org.checkerframework.checker.nullness.qual.MonotonicNonNull;
elapsedRealtimeMs
,
loadDurationMs
,
sampleSize
);
loadErrorHandlingPolicy
.
onLoad
Completed
(
loadEventInfo
);
loadErrorHandlingPolicy
.
onLoad
TaskConcluded
(
loadable
.
loadTaskId
);
eventDispatcher
.
loadCompleted
(
loadEventInfo
,
C
.
DATA_TYPE_MEDIA
,
...
...
@@ -252,7 +252,7 @@ import org.checkerframework.checker.nullness.qual.MonotonicNonNull;
elapsedRealtimeMs
,
loadDurationMs
,
dataSource
.
getBytesRead
());
loadErrorHandlingPolicy
.
onLoad
Canceled
(
loadEventInfo
);
loadErrorHandlingPolicy
.
onLoad
TaskConcluded
(
loadable
.
loadTaskId
);
eventDispatcher
.
loadCanceled
(
loadEventInfo
,
C
.
DATA_TYPE_MEDIA
,
...
...
@@ -290,6 +290,7 @@ import org.checkerframework.checker.nullness.qual.MonotonicNonNull;
:
Loader
.
DONT_RETRY_FATAL
;
}
StatsDataSource
dataSource
=
loadable
.
dataSource
;
boolean
wasCanceled
=
!
action
.
isRetry
();
eventDispatcher
.
loadError
(
new
LoadEventInfo
(
loadable
.
loadTaskId
,
...
...
@@ -307,7 +308,10 @@ import org.checkerframework.checker.nullness.qual.MonotonicNonNull;
/* mediaStartTimeUs= */
0
,
durationUs
,
error
,
/* wasCanceled= */
!
action
.
isRetry
());
wasCanceled
);
if
(
wasCanceled
)
{
loadErrorHandlingPolicy
.
onLoadTaskConcluded
(
loadable
.
loadTaskId
);
}
return
action
;
}
...
...
library/core/src/main/java/com/google/android/exoplayer2/source/chunk/ChunkSampleStream.java
View file @
0774ee1d
...
...
@@ -414,7 +414,7 @@ public class ChunkSampleStream<T extends ChunkSource> implements SampleStream, S
elapsedRealtimeMs
,
loadDurationMs
,
loadable
.
bytesLoaded
());
loadErrorHandlingPolicy
.
onLoad
Completed
(
loadEventInfo
);
loadErrorHandlingPolicy
.
onLoad
TaskConcluded
(
loadable
.
loadTaskId
);
eventDispatcher
.
loadCompleted
(
loadEventInfo
,
loadable
.
type
,
...
...
@@ -439,7 +439,7 @@ public class ChunkSampleStream<T extends ChunkSource> implements SampleStream, S
elapsedRealtimeMs
,
loadDurationMs
,
loadable
.
bytesLoaded
());
loadErrorHandlingPolicy
.
onLoad
Canceled
(
loadEventInfo
);
loadErrorHandlingPolicy
.
onLoad
TaskConcluded
(
loadable
.
loadTaskId
);
eventDispatcher
.
loadCanceled
(
loadEventInfo
,
loadable
.
type
,
...
...
@@ -522,6 +522,7 @@ public class ChunkSampleStream<T extends ChunkSource> implements SampleStream, S
error
,
canceled
);
if
(
canceled
)
{
loadErrorHandlingPolicy
.
onLoadTaskConcluded
(
loadable
.
loadTaskId
);
callback
.
onContinueLoadingRequested
(
this
);
}
return
loadErrorAction
;
...
...
library/core/src/main/java/com/google/android/exoplayer2/upstream/LoadErrorHandlingPolicy.java
View file @
0774ee1d
...
...
@@ -137,20 +137,12 @@ public interface LoadErrorHandlingPolicy {
}
/**
* Called
when the load associated with the given {@link LoadEventInfo} complete
s.
* Called
once {@code loadTaskId} will not be associated with any more load error
s.
*
* <p>Implementations
of this interface should avoid resource leaks by releasing resource
s
*
associated to the given {@link LoadEventInfo#loadTaskId}
.
* <p>Implementations
should clean up any resources associated with {@code loadTaskId} when thi
s
*
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
...
...
library/dash/src/main/java/com/google/android/exoplayer2/source/dash/DashMediaSource.java
View file @
0774ee1d
...
...
@@ -763,7 +763,7 @@ public final class DashMediaSource extends BaseMediaSource {
elapsedRealtimeMs
,
loadDurationMs
,
loadable
.
bytesLoaded
());
loadErrorHandlingPolicy
.
onLoad
Completed
(
loadEventInfo
);
loadErrorHandlingPolicy
.
onLoad
TaskConcluded
(
loadable
.
loadTaskId
);
manifestEventDispatcher
.
loadCompleted
(
loadEventInfo
,
loadable
.
type
);
DashManifest
newManifest
=
loadable
.
getResult
();
...
...
@@ -859,6 +859,7 @@ public final class DashMediaSource extends BaseMediaSource {
retryDelayMs
==
C
.
TIME_UNSET
?
Loader
.
DONT_RETRY_FATAL
:
Loader
.
createRetryAction
(
/* resetErrorCount= */
false
,
retryDelayMs
);
boolean
wasCanceled
=
!
loadErrorAction
.
isRetry
();
manifestEventDispatcher
.
loadError
(
new
LoadEventInfo
(
loadable
.
loadTaskId
,
...
...
@@ -870,7 +871,10 @@ public final class DashMediaSource extends BaseMediaSource {
loadable
.
bytesLoaded
()),
loadable
.
type
,
error
,
!
loadErrorAction
.
isRetry
());
wasCanceled
);
if
(
wasCanceled
)
{
loadErrorHandlingPolicy
.
onLoadTaskConcluded
(
loadable
.
loadTaskId
);
}
return
loadErrorAction
;
}
...
...
@@ -885,7 +889,7 @@ public final class DashMediaSource extends BaseMediaSource {
elapsedRealtimeMs
,
loadDurationMs
,
loadable
.
bytesLoaded
());
loadErrorHandlingPolicy
.
onLoad
Completed
(
loadEventInfo
);
loadErrorHandlingPolicy
.
onLoad
TaskConcluded
(
loadable
.
loadTaskId
);
manifestEventDispatcher
.
loadCompleted
(
loadEventInfo
,
loadable
.
type
);
onUtcTimestampResolved
(
loadable
.
getResult
()
-
elapsedRealtimeMs
);
}
...
...
@@ -907,6 +911,7 @@ public final class DashMediaSource extends BaseMediaSource {
loadable
.
type
,
error
,
/* wasCanceled= */
true
);
loadErrorHandlingPolicy
.
onLoadTaskConcluded
(
loadable
.
loadTaskId
);
onUtcTimestampResolutionError
(
error
);
return
Loader
.
DONT_RETRY
;
}
...
...
@@ -922,7 +927,7 @@ public final class DashMediaSource extends BaseMediaSource {
elapsedRealtimeMs
,
loadDurationMs
,
loadable
.
bytesLoaded
());
loadErrorHandlingPolicy
.
onLoad
Canceled
(
loadEventInfo
);
loadErrorHandlingPolicy
.
onLoad
TaskConcluded
(
loadable
.
loadTaskId
);
manifestEventDispatcher
.
loadCanceled
(
loadEventInfo
,
loadable
.
type
);
}
...
...
library/hls/src/main/java/com/google/android/exoplayer2/source/hls/HlsSampleStreamWrapper.java
View file @
0774ee1d
...
...
@@ -711,7 +711,7 @@ import org.checkerframework.checker.nullness.qual.RequiresNonNull;
elapsedRealtimeMs
,
loadDurationMs
,
loadable
.
bytesLoaded
());
loadErrorHandlingPolicy
.
onLoad
Completed
(
loadEventInfo
);
loadErrorHandlingPolicy
.
onLoad
TaskConcluded
(
loadable
.
loadTaskId
);
eventDispatcher
.
loadCompleted
(
loadEventInfo
,
loadable
.
type
,
...
...
@@ -740,7 +740,7 @@ import org.checkerframework.checker.nullness.qual.RequiresNonNull;
elapsedRealtimeMs
,
loadDurationMs
,
loadable
.
bytesLoaded
());
loadErrorHandlingPolicy
.
onLoad
Canceled
(
loadEventInfo
);
loadErrorHandlingPolicy
.
onLoad
TaskConcluded
(
loadable
.
loadTaskId
);
eventDispatcher
.
loadCanceled
(
loadEventInfo
,
loadable
.
type
,
...
...
@@ -796,6 +796,7 @@ import org.checkerframework.checker.nullness.qual.RequiresNonNull;
:
Loader
.
DONT_RETRY_FATAL
;
}
boolean
wasCanceled
=
!
loadErrorAction
.
isRetry
();
eventDispatcher
.
loadError
(
new
LoadEventInfo
(
loadable
.
loadTaskId
,
...
...
@@ -813,7 +814,10 @@ import org.checkerframework.checker.nullness.qual.RequiresNonNull;
loadable
.
startTimeUs
,
loadable
.
endTimeUs
,
error
,
/* wasCanceled= */
!
loadErrorAction
.
isRetry
());
wasCanceled
);
if
(
wasCanceled
)
{
loadErrorHandlingPolicy
.
onLoadTaskConcluded
(
loadable
.
loadTaskId
);
}
if
(
blacklistSucceeded
)
{
if
(!
prepared
)
{
...
...
library/hls/src/main/java/com/google/android/exoplayer2/source/hls/playlist/DefaultHlsPlaylistTracker.java
View file @
0774ee1d
...
...
@@ -251,7 +251,7 @@ public final class DefaultHlsPlaylistTracker
elapsedRealtimeMs
,
loadDurationMs
,
loadable
.
bytesLoaded
());
loadErrorHandlingPolicy
.
onLoad
Completed
(
loadEventInfo
);
loadErrorHandlingPolicy
.
onLoad
TaskConcluded
(
loadable
.
loadTaskId
);
eventDispatcher
.
loadCompleted
(
loadEventInfo
,
C
.
DATA_TYPE_MANIFEST
);
}
...
...
@@ -270,7 +270,7 @@ public final class DefaultHlsPlaylistTracker
elapsedRealtimeMs
,
loadDurationMs
,
loadable
.
bytesLoaded
());
loadErrorHandlingPolicy
.
onLoad
Canceled
(
loadEventInfo
);
loadErrorHandlingPolicy
.
onLoad
TaskConcluded
(
loadable
.
loadTaskId
);
eventDispatcher
.
loadCanceled
(
loadEventInfo
,
C
.
DATA_TYPE_MANIFEST
);
}
...
...
@@ -297,6 +297,9 @@ public final class DefaultHlsPlaylistTracker
C
.
DATA_TYPE_MANIFEST
,
error
,
isFatal
);
if
(
isFatal
)
{
loadErrorHandlingPolicy
.
onLoadTaskConcluded
(
loadable
.
loadTaskId
);
}
return
isFatal
?
Loader
.
DONT_RETRY_FATAL
:
Loader
.
createRetryAction
(
/* resetErrorCount= */
false
,
retryDelayMs
);
...
...
@@ -536,7 +539,7 @@ public final class DefaultHlsPlaylistTracker
elapsedRealtimeMs
,
loadDurationMs
,
loadable
.
bytesLoaded
());
loadErrorHandlingPolicy
.
onLoad
Completed
(
loadEventInfo
);
loadErrorHandlingPolicy
.
onLoad
TaskConcluded
(
loadable
.
loadTaskId
);
if
(
result
instanceof
HlsMediaPlaylist
)
{
processLoadedPlaylist
((
HlsMediaPlaylist
)
result
,
loadDurationMs
);
eventDispatcher
.
loadCompleted
(
loadEventInfo
,
C
.
DATA_TYPE_MANIFEST
);
...
...
@@ -560,7 +563,7 @@ public final class DefaultHlsPlaylistTracker
elapsedRealtimeMs
,
loadDurationMs
,
loadable
.
bytesLoaded
());
loadErrorHandlingPolicy
.
onLoad
Canceled
(
loadEventInfo
);
loadErrorHandlingPolicy
.
onLoad
TaskConcluded
(
loadable
.
loadTaskId
);
eventDispatcher
.
loadCanceled
(
loadEventInfo
,
C
.
DATA_TYPE_MANIFEST
);
}
...
...
@@ -596,6 +599,7 @@ public final class DefaultHlsPlaylistTracker
loadErrorAction
=
Loader
.
DONT_RETRY
;
}
boolean
wasCanceled
=
!
loadErrorAction
.
isRetry
();
eventDispatcher
.
loadError
(
new
LoadEventInfo
(
loadable
.
loadTaskId
,
...
...
@@ -607,8 +611,10 @@ public final class DefaultHlsPlaylistTracker
loadable
.
bytesLoaded
()),
C
.
DATA_TYPE_MANIFEST
,
error
,
/* wasCanceled= */
!
loadErrorAction
.
isRetry
());
wasCanceled
);
if
(
wasCanceled
)
{
loadErrorHandlingPolicy
.
onLoadTaskConcluded
(
loadable
.
loadTaskId
);
}
return
loadErrorAction
;
}
...
...
library/smoothstreaming/src/main/java/com/google/android/exoplayer2/source/smoothstreaming/SsMediaSource.java
View file @
0774ee1d
...
...
@@ -630,7 +630,7 @@ public final class SsMediaSource extends BaseMediaSource
elapsedRealtimeMs
,
loadDurationMs
,
loadable
.
bytesLoaded
());
loadErrorHandlingPolicy
.
onLoad
Completed
(
loadEventInfo
);
loadErrorHandlingPolicy
.
onLoad
TaskConcluded
(
loadable
.
loadTaskId
);
manifestEventDispatcher
.
loadCompleted
(
loadEventInfo
,
loadable
.
type
);
manifest
=
loadable
.
getResult
();
manifestLoadStartTimestamp
=
elapsedRealtimeMs
-
loadDurationMs
;
...
...
@@ -653,7 +653,7 @@ public final class SsMediaSource extends BaseMediaSource
elapsedRealtimeMs
,
loadDurationMs
,
loadable
.
bytesLoaded
());
loadErrorHandlingPolicy
.
onLoad
Canceled
(
loadEventInfo
);
loadErrorHandlingPolicy
.
onLoad
TaskConcluded
(
loadable
.
loadTaskId
);
manifestEventDispatcher
.
loadCanceled
(
loadEventInfo
,
loadable
.
type
);
}
...
...
@@ -671,6 +671,7 @@ public final class SsMediaSource extends BaseMediaSource
retryDelayMs
==
C
.
TIME_UNSET
?
Loader
.
DONT_RETRY_FATAL
:
Loader
.
createRetryAction
(
/* resetErrorCount= */
false
,
retryDelayMs
);
boolean
wasCanceled
=
!
loadErrorAction
.
isRetry
();
manifestEventDispatcher
.
loadError
(
new
LoadEventInfo
(
loadable
.
loadTaskId
,
...
...
@@ -682,7 +683,10 @@ public final class SsMediaSource extends BaseMediaSource
loadable
.
bytesLoaded
()),
loadable
.
type
,
error
,
!
loadErrorAction
.
isRetry
());
wasCanceled
);
if
(
wasCanceled
)
{
loadErrorHandlingPolicy
.
onLoadTaskConcluded
(
loadable
.
loadTaskId
);
}
return
loadErrorAction
;
}
...
...
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