Rename CompositeAssetLoader to SequenceAssetLoader

This clarifies that a SequenceAssetLoader loads data corresponding to an
EditedMediaItemSequence.

PiperOrigin-RevId: 514442681
This commit is contained in:
kimvde 2023-03-06 17:59:12 +00:00 committed by Rohit Singh
parent f94d3cf6c4
commit ce9fa88c0d
2 changed files with 34 additions and 34 deletions

View File

@ -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();
});
}

View File

@ -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<CompositeAssetLoader> compositeAssetLoaders;
private final List<SequenceAssetLoader> 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<ExportResult.ProcessedInput> 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<EditedMediaItem> editedMediaItems;
@ -413,7 +413,7 @@ import org.checkerframework.checker.nullness.qual.MonotonicNonNull;
private final DebugViewProvider debugViewProvider;
private final Map<Integer, AddedTrackInfo> 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();