diff --git a/library/transformer/src/main/java/com/google/android/exoplayer2/transformer/CompositeAssetLoader.java b/library/transformer/src/main/java/com/google/android/exoplayer2/transformer/SequenceAssetLoader.java similarity index 93% rename from library/transformer/src/main/java/com/google/android/exoplayer2/transformer/CompositeAssetLoader.java rename to library/transformer/src/main/java/com/google/android/exoplayer2/transformer/SequenceAssetLoader.java index 31da856c49..25821b3de5 100644 --- a/library/transformer/src/main/java/com/google/android/exoplayer2/transformer/CompositeAssetLoader.java +++ b/library/transformer/src/main/java/com/google/android/exoplayer2/transformer/SequenceAssetLoader.java @@ -44,10 +44,10 @@ import java.util.concurrent.ConcurrentHashMap; import java.util.concurrent.atomic.AtomicInteger; /** - * An {@link AssetLoader} that is composed of a sequence of non-overlapping {@linkplain AssetLoader - * asset loaders}. + * An {@link AssetLoader} that is composed of a {@linkplain EditedMediaItemSequence sequence} of + * non-overlapping {@linkplain AssetLoader asset loaders}. */ -/* package */ final class CompositeAssetLoader implements AssetLoader, AssetLoader.Listener { +/* package */ final class SequenceAssetLoader implements AssetLoader, AssetLoader.Listener { private static final Format FORCE_AUDIO_TRACK_FORMAT = new Format.Builder() @@ -61,7 +61,7 @@ import java.util.concurrent.atomic.AtomicInteger; private final boolean forceAudioTrack; private final AssetLoader.Factory assetLoaderFactory; private final HandlerWrapper handler; - private final Listener compositeAssetLoaderListener; + private final Listener sequenceAssetLoaderListener; /** * A mapping from track types to {@link SampleConsumer} instances. * @@ -88,7 +88,7 @@ import java.util.concurrent.atomic.AtomicInteger; private volatile long currentDurationUs; - public CompositeAssetLoader( + public SequenceAssetLoader( EditedMediaItemSequence sequence, boolean forceAudioTrack, AssetLoader.Factory assetLoaderFactory, @@ -98,7 +98,7 @@ import java.util.concurrent.atomic.AtomicInteger; editedMediaItems = sequence.editedMediaItems; this.forceAudioTrack = forceAudioTrack; this.assetLoaderFactory = assetLoaderFactory; - compositeAssetLoaderListener = listener; + sequenceAssetLoaderListener = listener; currentMediaItemIndex = new AtomicInteger(); handler = clock.createHandler(looper, /* callback= */ null); sampleConsumersByTrackType = new HashMap<>(); @@ -182,9 +182,9 @@ import java.util.concurrent.atomic.AtomicInteger; + ". An unset duration is only allowed for the last EditedMediaItem in the sequence."); currentDurationUs = durationUs; if (editedMediaItems.size() == 1) { - compositeAssetLoaderListener.onDurationUs(durationUs); + sequenceAssetLoaderListener.onDurationUs(durationUs); } else if (currentMediaItemIndex == 0) { - compositeAssetLoaderListener.onDurationUs(C.TIME_UNSET); + sequenceAssetLoaderListener.onDurationUs(C.TIME_UNSET); } } @@ -210,12 +210,12 @@ import java.util.concurrent.atomic.AtomicInteger; if (!trackCountReported) { int trackCount = nonEndedTracks.get() + (addForcedAudioTrack ? 1 : 0); - compositeAssetLoaderListener.onTrackCount(trackCount); + sequenceAssetLoaderListener.onTrackCount(trackCount); trackCountReported = true; } boolean decodeOutput = - compositeAssetLoaderListener.onTrackAdded( + sequenceAssetLoaderListener.onTrackAdded( inputFormat, supportedOutputTypes, streamStartPositionUs, streamOffsetUs); if (isAudio) { @@ -225,7 +225,7 @@ import java.util.concurrent.atomic.AtomicInteger; } if (addForcedAudioTrack) { - compositeAssetLoaderListener.onTrackAdded( + sequenceAssetLoaderListener.onTrackAdded( FORCE_AUDIO_TRACK_FORMAT, SUPPORTED_OUTPUT_TYPE_DECODED, streamStartPositionUs, @@ -242,7 +242,7 @@ import java.util.concurrent.atomic.AtomicInteger; SampleConsumer sampleConsumer; if (currentMediaItemIndex.get() == 0) { @Nullable - SampleConsumer wrappedSampleConsumer = compositeAssetLoaderListener.onOutputFormat(format); + SampleConsumer wrappedSampleConsumer = sequenceAssetLoaderListener.onOutputFormat(format); if (wrappedSampleConsumer == null) { return null; } @@ -252,7 +252,7 @@ import java.util.concurrent.atomic.AtomicInteger; if (forceAudioTrack && nonEndedTracks.get() == 1 && trackType == C.TRACK_TYPE_VIDEO) { SampleConsumer wrappedAudioSampleConsumer = checkStateNotNull( - compositeAssetLoaderListener.onOutputFormat( + sequenceAssetLoaderListener.onOutputFormat( FORCE_AUDIO_TRACK_FORMAT .buildUpon() .setSampleMimeType(MimeTypes.AUDIO_RAW) @@ -289,7 +289,7 @@ import java.util.concurrent.atomic.AtomicInteger; @Override public void onError(ExportException exportException) { - compositeAssetLoaderListener.onError(exportException); + sequenceAssetLoaderListener.onError(exportException); } private void onMediaItemChanged(int trackType, @Nullable Format format) { @@ -402,7 +402,7 @@ import java.util.concurrent.atomic.AtomicInteger; assetLoaderFactory.createAssetLoader( editedMediaItem, checkNotNull(Looper.myLooper()), - /* listener= */ CompositeAssetLoader.this); + /* listener= */ SequenceAssetLoader.this); currentAssetLoader.start(); }); } diff --git a/library/transformer/src/main/java/com/google/android/exoplayer2/transformer/TransformerInternal.java b/library/transformer/src/main/java/com/google/android/exoplayer2/transformer/TransformerInternal.java index 73c6a115c8..d4a02eaedb 100644 --- a/library/transformer/src/main/java/com/google/android/exoplayer2/transformer/TransformerInternal.java +++ b/library/transformer/src/main/java/com/google/android/exoplayer2/transformer/TransformerInternal.java @@ -99,7 +99,7 @@ import org.checkerframework.checker.nullness.qual.MonotonicNonNull; private final Clock clock; private final HandlerThread internalHandlerThread; private final HandlerWrapper internalHandler; - private final List compositeAssetLoaders; + private final List sequenceAssetLoaders; private final AtomicInteger trackCountsToReport; private final AtomicInteger tracksToAdd; private final AtomicBoolean outputHasAudio; @@ -137,23 +137,23 @@ import org.checkerframework.checker.nullness.qual.MonotonicNonNull; this.clock = clock; internalHandlerThread = new HandlerThread("Transformer:Internal"); internalHandlerThread.start(); - compositeAssetLoaders = new ArrayList<>(); + sequenceAssetLoaders = new ArrayList<>(); Looper internalLooper = internalHandlerThread.getLooper(); for (int i = 0; i < composition.sequences.size(); i++) { - CompositeAssetLoaderListener compositeAssetLoaderListener = - new CompositeAssetLoaderListener( + SequenceAssetLoaderListener sequenceAssetLoaderListener = + new SequenceAssetLoaderListener( /* sequenceIndex= */ i, composition, transformationRequest, fallbackListener, debugViewProvider); - compositeAssetLoaders.add( - new CompositeAssetLoader( + sequenceAssetLoaders.add( + new SequenceAssetLoader( composition.sequences.get(i), composition.forceAudioTrack, assetLoaderFactory, internalLooper, - compositeAssetLoaderListener, + sequenceAssetLoaderListener, clock)); } trackCountsToReport = new AtomicInteger(composition.sequences.size()); @@ -286,8 +286,8 @@ import org.checkerframework.checker.nullness.qual.MonotonicNonNull; } private void startInternal() { - for (int i = 0; i < compositeAssetLoaders.size(); i++) { - compositeAssetLoaders.get(i).start(); + for (int i = 0; i < sequenceAssetLoaders.size(); i++) { + sequenceAssetLoaders.get(i).start(); } } @@ -312,8 +312,8 @@ import org.checkerframework.checker.nullness.qual.MonotonicNonNull; private void endInternal(@EndReason int endReason, @Nullable ExportException exportException) { ImmutableList.Builder processedInputsBuilder = new ImmutableList.Builder<>(); - for (int i = 0; i < compositeAssetLoaders.size(); i++) { - processedInputsBuilder.addAll(compositeAssetLoaders.get(i).getProcessedInputs()); + for (int i = 0; i < sequenceAssetLoaders.size(); i++) { + processedInputsBuilder.addAll(sequenceAssetLoaders.get(i).getProcessedInputs()); } exportResultBuilder .setProcessedInputs(processedInputsBuilder.build()) @@ -324,9 +324,9 @@ import org.checkerframework.checker.nullness.qual.MonotonicNonNull; @Nullable ExportException releaseExportException = null; if (!released) { released = true; - for (int i = 0; i < compositeAssetLoaders.size(); i++) { + for (int i = 0; i < sequenceAssetLoaders.size(); i++) { try { - compositeAssetLoaders.get(i).release(); + sequenceAssetLoaders.get(i).release(); } catch (RuntimeException e) { if (releaseExportException == null) { releaseExportException = ExportException.createForUnexpected(e); @@ -391,19 +391,19 @@ import org.checkerframework.checker.nullness.qual.MonotonicNonNull; private void updateProgressInternal(ProgressHolder progressHolder) { int progressSum = 0; ProgressHolder individualProgressHolder = new ProgressHolder(); - for (int i = 0; i < compositeAssetLoaders.size(); i++) { - progressState = compositeAssetLoaders.get(i).getProgress(individualProgressHolder); + for (int i = 0; i < sequenceAssetLoaders.size(); i++) { + progressState = sequenceAssetLoaders.get(i).getProgress(individualProgressHolder); if (progressState != PROGRESS_STATE_AVAILABLE) { transformerConditionVariable.open(); return; } progressSum += individualProgressHolder.progress; } - progressHolder.progress = progressSum / compositeAssetLoaders.size(); + progressHolder.progress = progressSum / sequenceAssetLoaders.size(); transformerConditionVariable.open(); } - private final class CompositeAssetLoaderListener implements AssetLoader.Listener { + private final class SequenceAssetLoaderListener implements AssetLoader.Listener { private final int sequenceIndex; private final ImmutableList editedMediaItems; @@ -413,7 +413,7 @@ import org.checkerframework.checker.nullness.qual.MonotonicNonNull; private final DebugViewProvider debugViewProvider; private final Map addedTrackInfoByTrackType; - public CompositeAssetLoaderListener( + public SequenceAssetLoaderListener( int sequenceIndex, Composition composition, TransformationRequest transformationRequest, @@ -486,7 +486,7 @@ import org.checkerframework.checker.nullness.qual.MonotonicNonNull; AddedTrackInfo trackInfo = checkStateNotNull(addedTrackInfoByTrackType.get(trackType)); SamplePipeline samplePipeline = getSamplePipeline(assetLoaderOutputFormat, trackInfo); - compositeAssetLoaders + sequenceAssetLoaders .get(sequenceIndex) .addOnMediaItemChangedListener(samplePipeline, trackType); internalHandler.obtainMessage(MSG_REGISTER_SAMPLE_PIPELINE, samplePipeline).sendToTarget();