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
97589f12
authored
Nov 10, 2022
by
kimvde
Committed by
microkatz
Nov 10, 2022
Browse files
Options
_('Browse Files')
Download
Email Patches
Plain Diff
Remove dependency on muxer from ExoPlayerAssetLoader
PiperOrigin-RevId: 487487259
parent
09bee98b
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
16 additions
and
18 deletions
library/transformer/src/main/java/com/google/android/exoplayer2/transformer/ExoPlayerAssetLoader.java
library/transformer/src/main/java/com/google/android/exoplayer2/transformer/MuxerWrapper.java
library/transformer/src/main/java/com/google/android/exoplayer2/transformer/TransformerInternal.java
library/transformer/src/main/java/com/google/android/exoplayer2/transformer/ExoPlayerAssetLoader.java
View file @
97589f12
...
...
@@ -49,7 +49,6 @@ import com.google.android.exoplayer2.text.TextOutput;
import
com.google.android.exoplayer2.trackselection.DefaultTrackSelector
;
import
com.google.android.exoplayer2.util.Clock
;
import
com.google.android.exoplayer2.video.VideoRendererEventListener
;
import
org.checkerframework.checker.nullness.qual.MonotonicNonNull
;
/* package */
final
class
ExoPlayerAssetLoader
{
...
...
@@ -57,6 +56,8 @@ import org.checkerframework.checker.nullness.qual.MonotonicNonNull;
void
onTrackRegistered
();
void
onAllTracksRegistered
();
SamplePipeline
onTrackAdded
(
Format
format
,
long
streamStartPositionUs
,
long
streamOffsetUs
)
throws
TransformationException
;
...
...
@@ -72,7 +73,6 @@ import org.checkerframework.checker.nullness.qual.MonotonicNonNull;
private
final
Looper
looper
;
private
final
Clock
clock
;
private
@MonotonicNonNull
MuxerWrapper
muxerWrapper
;
@Nullable
private
ExoPlayer
player
;
private
@Transformer
.
ProgressState
int
progressState
;
...
...
@@ -93,19 +93,14 @@ import org.checkerframework.checker.nullness.qual.MonotonicNonNull;
}
public
void
start
(
MediaItem
mediaItem
,
MuxerWrapper
muxerWrapper
,
Listener
listener
,
Transformer
.
AsyncErrorListener
asyncErrorListener
)
{
this
.
muxerWrapper
=
muxerWrapper
;
MediaItem
mediaItem
,
Listener
listener
,
Transformer
.
AsyncErrorListener
asyncErrorListener
)
{
DefaultTrackSelector
trackSelector
=
new
DefaultTrackSelector
(
context
);
trackSelector
.
setParameters
(
new
DefaultTrackSelector
.
Parameters
.
Builder
(
context
)
.
setForceHighestSupportedBitrate
(
true
)
.
build
());
// Arbitrarily decrease buffers for playback so that samples start being sent earlier to the
//
muxer
(rebuffers are less problematic for the transformation use case).
//
pipelines
(rebuffers are less problematic for the transformation use case).
DefaultLoadControl
loadControl
=
new
DefaultLoadControl
.
Builder
()
.
setBufferDurationsMs
(
...
...
@@ -238,9 +233,7 @@ import org.checkerframework.checker.nullness.qual.MonotonicNonNull;
@Override
public
void
onTracksChanged
(
Tracks
tracks
)
{
if
(
checkNotNull
(
muxerWrapper
).
getTrackCount
()
==
0
)
{
listener
.
onError
(
new
IllegalStateException
(
"The output does not contain any tracks."
));
}
listener
.
onAllTracksRegistered
();
}
@Override
...
...
library/transformer/src/main/java/com/google/android/exoplayer2/transformer/MuxerWrapper.java
View file @
97589f12
...
...
@@ -235,11 +235,6 @@ import org.checkerframework.checker.nullness.qual.RequiresNonNull;
}
}
/** Returns the number of {@link #registerTrack() registered} tracks. */
public
int
getTrackCount
()
{
return
trackCount
;
}
/**
* Returns the average bitrate of data written to the track of the provided {@code trackType}, or
* {@link C#RATE_UNSET_INT} if there is no track data.
...
...
library/transformer/src/main/java/com/google/android/exoplayer2/transformer/TransformerInternal.java
View file @
97589f12
...
...
@@ -85,7 +85,7 @@ import com.google.common.collect.ImmutableList;
ComponentListener
componentListener
=
new
ComponentListener
(
mediaItem
,
muxerWrapper
,
listener
,
fallbackListener
,
asyncErrorListener
);
exoPlayerAssetLoader
.
start
(
mediaItem
,
muxerWrapper
,
componentListener
,
asyncErrorListener
);
exoPlayerAssetLoader
.
start
(
mediaItem
,
componentListener
,
asyncErrorListener
);
}
public
@Transformer
.
ProgressState
int
getProgress
(
ProgressHolder
progressHolder
)
{
...
...
@@ -104,6 +104,8 @@ import com.google.common.collect.ImmutableList;
private
final
FallbackListener
fallbackListener
;
private
final
Transformer
.
AsyncErrorListener
asyncErrorListener
;
private
volatile
boolean
trackRegistered
;
public
ComponentListener
(
MediaItem
mediaItem
,
MuxerWrapper
muxerWrapper
,
...
...
@@ -119,11 +121,19 @@ import com.google.common.collect.ImmutableList;
@Override
public
void
onTrackRegistered
()
{
trackRegistered
=
true
;
muxerWrapper
.
registerTrack
();
fallbackListener
.
registerTrack
();
}
@Override
public
void
onAllTracksRegistered
()
{
if
(!
trackRegistered
)
{
onError
(
new
IllegalStateException
(
"The output does not contain any tracks."
));
}
}
@Override
public
SamplePipeline
onTrackAdded
(
Format
format
,
long
streamStartPositionUs
,
long
streamOffsetUs
)
throws
TransformationException
{
...
...
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