Skip to content

Commit

Permalink
Remove dependency on muxer from ExoPlayerAssetLoader
Browse files Browse the repository at this point in the history
PiperOrigin-RevId: 487487259
  • Loading branch information
kim-vde authored and microkatz committed Nov 10, 2022
1 parent 09bee98 commit 97589f1
Show file tree
Hide file tree
Showing 3 changed files with 16 additions and 18 deletions.
Expand Up @@ -49,14 +49,15 @@
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 {

public interface Listener {

void onTrackRegistered();

void onAllTracksRegistered();

SamplePipeline onTrackAdded(Format format, long streamStartPositionUs, long streamOffsetUs)
throws TransformationException;

Expand All @@ -72,7 +73,6 @@ SamplePipeline onTrackAdded(Format format, long streamStartPositionUs, long stre
private final Looper looper;
private final Clock clock;

private @MonotonicNonNull MuxerWrapper muxerWrapper;
@Nullable private ExoPlayer player;
private @Transformer.ProgressState int progressState;

Expand All @@ -93,19 +93,14 @@ public ExoPlayerAssetLoader(
}

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(
Expand Down Expand Up @@ -238,9 +233,7 @@ public void onTimelineChanged(Timeline timeline, int reason) {

@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
Expand Down
Expand Up @@ -235,11 +235,6 @@ public void release(boolean forCancellation) throws Muxer.MuxerException {
}
}

/** 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.
Expand Down
Expand Up @@ -85,7 +85,7 @@ public void start(
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) {
Expand All @@ -104,6 +104,8 @@ private class ComponentListener implements ExoPlayerAssetLoader.Listener {
private final FallbackListener fallbackListener;
private final Transformer.AsyncErrorListener asyncErrorListener;

private volatile boolean trackRegistered;

public ComponentListener(
MediaItem mediaItem,
MuxerWrapper muxerWrapper,
Expand All @@ -119,10 +121,18 @@ public ComponentListener(

@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)
Expand Down

0 comments on commit 97589f1

Please sign in to comment.