Commit 4a91a234 by kimvde Committed by Rohit Singh

Remove setters from AssetLoader.Factory

It's unusual to have setters on a Factory.

PiperOrigin-RevId: 501212264
parent d2898b70
...@@ -18,13 +18,11 @@ package com.google.android.exoplayer2.transformer; ...@@ -18,13 +18,11 @@ package com.google.android.exoplayer2.transformer;
import static java.lang.annotation.ElementType.TYPE_USE; import static java.lang.annotation.ElementType.TYPE_USE;
import android.content.Context;
import android.os.Looper; import android.os.Looper;
import androidx.annotation.IntDef; import androidx.annotation.IntDef;
import androidx.annotation.IntRange; import androidx.annotation.IntRange;
import com.google.android.exoplayer2.Format; import com.google.android.exoplayer2.Format;
import com.google.android.exoplayer2.MediaItem; import com.google.android.exoplayer2.MediaItem;
import com.google.android.exoplayer2.util.Clock;
import com.google.errorprone.annotations.CanIgnoreReturnValue; import com.google.errorprone.annotations.CanIgnoreReturnValue;
import java.lang.annotation.Documented; import java.lang.annotation.Documented;
import java.lang.annotation.Retention; import java.lang.annotation.Retention;
...@@ -49,14 +47,6 @@ public interface AssetLoader { ...@@ -49,14 +47,6 @@ public interface AssetLoader {
*/ */
interface Factory { interface Factory {
/** Sets the {@link Context}. */
@CanIgnoreReturnValue
Factory setContext(Context context);
/** Sets the {@link MediaItem} to load. */
@CanIgnoreReturnValue
Factory setMediaItem(MediaItem mediaItem);
/** /**
* Sets whether to remove the audio samples from the output (if any). * Sets whether to remove the audio samples from the output (if any).
* *
...@@ -93,29 +83,17 @@ public interface AssetLoader { ...@@ -93,29 +83,17 @@ public interface AssetLoader {
Factory setDecoderFactory(Codec.DecoderFactory decoderFactory); Factory setDecoderFactory(Codec.DecoderFactory decoderFactory);
/** /**
* Sets the {@link Looper} that's used to access the {@link AssetLoader} after it's been
* created.
*/
@CanIgnoreReturnValue
Factory setLooper(Looper looper);
/** Sets the {@link Listener} on which the {@link AssetLoader} should notify of events. */
@CanIgnoreReturnValue
Factory setListener(AssetLoader.Listener listener);
/**
* The {@link Clock} to use.
*
* <p>Should always be {@link Clock#DEFAULT} except for testing.
*/
@CanIgnoreReturnValue
Factory setClock(Clock clock);
/**
* Creates an {@link AssetLoader} instance. All the setters in this factory must be called * Creates an {@link AssetLoader} instance. All the setters in this factory must be called
* before creating the {@link AssetLoader}. * before creating the {@link AssetLoader}.
*
* @param mediaItem The {@link MediaItem} to load.
* @param looper The {@link Looper} that's used to access the {@link AssetLoader} after it's
* been created.
* @param listener The {@link Listener} on which the {@link AssetLoader} should notify of
* events.
* @return An {@link AssetLoader}.
*/ */
AssetLoader createAssetLoader(); AssetLoader createAssetLoader(MediaItem mediaItem, Looper looper, Listener listener);
} }
/** /**
......
...@@ -19,6 +19,7 @@ package com.google.android.exoplayer2.transformer; ...@@ -19,6 +19,7 @@ package com.google.android.exoplayer2.transformer;
import android.content.Context; import android.content.Context;
import android.os.Looper; import android.os.Looper;
import com.google.android.exoplayer2.MediaItem; import com.google.android.exoplayer2.MediaItem;
import com.google.android.exoplayer2.source.MediaSource;
import com.google.android.exoplayer2.util.Clock; import com.google.android.exoplayer2.util.Clock;
import com.google.errorprone.annotations.CanIgnoreReturnValue; import com.google.errorprone.annotations.CanIgnoreReturnValue;
...@@ -27,21 +28,18 @@ public final class DefaultAssetLoaderFactory implements AssetLoader.Factory { ...@@ -27,21 +28,18 @@ public final class DefaultAssetLoaderFactory implements AssetLoader.Factory {
private final AssetLoader.Factory assetLoaderFactory; private final AssetLoader.Factory assetLoaderFactory;
/** Creates an instance. */ /**
public DefaultAssetLoaderFactory() { * Creates an instance.
assetLoaderFactory = new ExoPlayerAssetLoader.Factory(); *
} * @param context The {@link Context}.
* @param mediaSourceFactory The {@link MediaSource.Factory} to use to retrieve the samples to
@Override * transform when an {@link ExoPlayerAssetLoader} is used.
@CanIgnoreReturnValue * @param clock The {@link Clock} to use. It should always be {@link Clock#DEFAULT}, except for
public AssetLoader.Factory setContext(Context context) { * testing.
return assetLoaderFactory.setContext(context); */
} public DefaultAssetLoaderFactory(
Context context, MediaSource.Factory mediaSourceFactory, Clock clock) {
@Override assetLoaderFactory = new ExoPlayerAssetLoader.Factory(context, mediaSourceFactory, clock);
@CanIgnoreReturnValue
public AssetLoader.Factory setMediaItem(MediaItem mediaItem) {
return assetLoaderFactory.setMediaItem(mediaItem);
} }
@Override @Override
...@@ -70,25 +68,8 @@ public final class DefaultAssetLoaderFactory implements AssetLoader.Factory { ...@@ -70,25 +68,8 @@ public final class DefaultAssetLoaderFactory implements AssetLoader.Factory {
} }
@Override @Override
@CanIgnoreReturnValue public AssetLoader createAssetLoader(
public AssetLoader.Factory setLooper(Looper looper) { MediaItem mediaItem, Looper looper, AssetLoader.Listener listener) {
return assetLoaderFactory.setLooper(looper); return assetLoaderFactory.createAssetLoader(mediaItem, looper, listener);
}
@Override
@CanIgnoreReturnValue
public AssetLoader.Factory setListener(AssetLoader.Listener listener) {
return assetLoaderFactory.setListener(listener);
}
@Override
@CanIgnoreReturnValue
public AssetLoader.Factory setClock(Clock clock) {
return assetLoaderFactory.setClock(clock);
}
@Override
public AssetLoader createAssetLoader() {
return assetLoaderFactory.createAssetLoader();
} }
} }
...@@ -45,10 +45,7 @@ import com.google.android.exoplayer2.RenderersFactory; ...@@ -45,10 +45,7 @@ import com.google.android.exoplayer2.RenderersFactory;
import com.google.android.exoplayer2.Timeline; import com.google.android.exoplayer2.Timeline;
import com.google.android.exoplayer2.Tracks; import com.google.android.exoplayer2.Tracks;
import com.google.android.exoplayer2.audio.AudioRendererEventListener; import com.google.android.exoplayer2.audio.AudioRendererEventListener;
import com.google.android.exoplayer2.extractor.DefaultExtractorsFactory;
import com.google.android.exoplayer2.extractor.mp4.Mp4Extractor;
import com.google.android.exoplayer2.metadata.MetadataOutput; import com.google.android.exoplayer2.metadata.MetadataOutput;
import com.google.android.exoplayer2.source.DefaultMediaSourceFactory;
import com.google.android.exoplayer2.source.MediaSource; import com.google.android.exoplayer2.source.MediaSource;
import com.google.android.exoplayer2.text.TextOutput; import com.google.android.exoplayer2.text.TextOutput;
import com.google.android.exoplayer2.trackselection.DefaultTrackSelector; import com.google.android.exoplayer2.trackselection.DefaultTrackSelector;
...@@ -62,48 +59,28 @@ public final class ExoPlayerAssetLoader implements AssetLoader { ...@@ -62,48 +59,28 @@ public final class ExoPlayerAssetLoader implements AssetLoader {
/** An {@link AssetLoader.Factory} for {@link ExoPlayerAssetLoader} instances. */ /** An {@link AssetLoader.Factory} for {@link ExoPlayerAssetLoader} instances. */
public static final class Factory implements AssetLoader.Factory { public static final class Factory implements AssetLoader.Factory {
@Nullable private Context context; private final Context context;
@Nullable private MediaItem mediaItem; private final MediaSource.Factory mediaSourceFactory;
private final Clock clock;
private boolean removeAudio; private boolean removeAudio;
private boolean removeVideo; private boolean removeVideo;
private boolean flattenVideoForSlowMotion; private boolean flattenVideoForSlowMotion;
@Nullable private MediaSource.Factory mediaSourceFactory;
@Nullable private Codec.DecoderFactory decoderFactory; @Nullable private Codec.DecoderFactory decoderFactory;
@Nullable private Looper looper;
@Nullable private AssetLoader.Listener listener;
@Nullable private Clock clock;
/** /**
* Creates an instance. * Creates an instance.
* *
* <p>The {@link ExoPlayerAssetLoader} instances produced use a {@link * @param context The {@link Context}.
* DefaultMediaSourceFactory} built with the context provided in {@linkplain * @param mediaSourceFactory The {@link MediaSource.Factory} to use to retrieve the samples to
* #setContext(Context)}. * transform.
* @param clock The {@link Clock} to use. It should always be {@link Clock#DEFAULT}, except for
* testing.
*/ */
public Factory() {} public Factory(Context context, MediaSource.Factory mediaSourceFactory, Clock clock) {
/**
* Creates an instance.
*
* @param mediaSourceFactory The {@link MediaSource.Factory} to be used to retrieve the samples
* to transform.
*/
public Factory(MediaSource.Factory mediaSourceFactory) {
this.mediaSourceFactory = mediaSourceFactory;
}
@Override
@CanIgnoreReturnValue
public AssetLoader.Factory setContext(Context context) {
this.context = context; this.context = context;
return this; this.mediaSourceFactory = mediaSourceFactory;
} this.clock = clock;
@Override
@CanIgnoreReturnValue
public AssetLoader.Factory setMediaItem(MediaItem mediaItem) {
this.mediaItem = mediaItem;
return this;
} }
@Override @Override
...@@ -135,47 +112,18 @@ public final class ExoPlayerAssetLoader implements AssetLoader { ...@@ -135,47 +112,18 @@ public final class ExoPlayerAssetLoader implements AssetLoader {
} }
@Override @Override
@CanIgnoreReturnValue public AssetLoader createAssetLoader(MediaItem mediaItem, Looper looper, Listener listener) {
public AssetLoader.Factory setLooper(Looper looper) {
this.looper = looper;
return this;
}
@Override
@CanIgnoreReturnValue
public AssetLoader.Factory setListener(AssetLoader.Listener listener) {
this.listener = listener;
return this;
}
@Override
@CanIgnoreReturnValue
public AssetLoader.Factory setClock(Clock clock) {
this.clock = clock;
return this;
}
@Override
public AssetLoader createAssetLoader() {
Context context = checkStateNotNull(this.context);
if (mediaSourceFactory == null) {
DefaultExtractorsFactory defaultExtractorsFactory = new DefaultExtractorsFactory();
if (flattenVideoForSlowMotion) {
defaultExtractorsFactory.setMp4ExtractorFlags(Mp4Extractor.FLAG_READ_SEF_DATA);
}
mediaSourceFactory = new DefaultMediaSourceFactory(context, defaultExtractorsFactory);
}
return new ExoPlayerAssetLoader( return new ExoPlayerAssetLoader(
context, context,
checkStateNotNull(mediaItem), mediaItem,
removeAudio, removeAudio,
removeVideo, removeVideo,
flattenVideoForSlowMotion, flattenVideoForSlowMotion,
mediaSourceFactory, mediaSourceFactory,
checkStateNotNull(decoderFactory), checkStateNotNull(decoderFactory),
checkStateNotNull(looper), looper,
checkStateNotNull(listener), listener,
checkStateNotNull(clock)); clock);
} }
} }
......
...@@ -34,6 +34,10 @@ import com.google.android.exoplayer2.audio.SonicAudioProcessor; ...@@ -34,6 +34,10 @@ import com.google.android.exoplayer2.audio.SonicAudioProcessor;
import com.google.android.exoplayer2.effect.GlEffect; import com.google.android.exoplayer2.effect.GlEffect;
import com.google.android.exoplayer2.effect.GlEffectsFrameProcessor; import com.google.android.exoplayer2.effect.GlEffectsFrameProcessor;
import com.google.android.exoplayer2.effect.GlMatrixTransformation; import com.google.android.exoplayer2.effect.GlMatrixTransformation;
import com.google.android.exoplayer2.extractor.DefaultExtractorsFactory;
import com.google.android.exoplayer2.extractor.mp4.Mp4Extractor;
import com.google.android.exoplayer2.source.DefaultMediaSourceFactory;
import com.google.android.exoplayer2.source.MediaSource;
import com.google.android.exoplayer2.util.Clock; import com.google.android.exoplayer2.util.Clock;
import com.google.android.exoplayer2.util.DebugViewProvider; import com.google.android.exoplayer2.util.DebugViewProvider;
import com.google.android.exoplayer2.util.Effect; import com.google.android.exoplayer2.util.Effect;
...@@ -84,7 +88,7 @@ public final class Transformer { ...@@ -84,7 +88,7 @@ public final class Transformer {
private boolean removeVideo; private boolean removeVideo;
private boolean forceSilentAudio; private boolean forceSilentAudio;
private ListenerSet<Transformer.Listener> listeners; private ListenerSet<Transformer.Listener> listeners;
private AssetLoader.Factory assetLoaderFactory; @Nullable private AssetLoader.Factory assetLoaderFactory;
private Codec.DecoderFactory decoderFactory; private Codec.DecoderFactory decoderFactory;
private Codec.EncoderFactory encoderFactory; private Codec.EncoderFactory encoderFactory;
private FrameProcessor.Factory frameProcessorFactory; private FrameProcessor.Factory frameProcessorFactory;
...@@ -103,7 +107,6 @@ public final class Transformer { ...@@ -103,7 +107,6 @@ public final class Transformer {
transformationRequest = new TransformationRequest.Builder().build(); transformationRequest = new TransformationRequest.Builder().build();
audioProcessors = ImmutableList.of(); audioProcessors = ImmutableList.of();
videoEffects = ImmutableList.of(); videoEffects = ImmutableList.of();
assetLoaderFactory = new DefaultAssetLoaderFactory();
decoderFactory = new DefaultDecoderFactory(this.context); decoderFactory = new DefaultDecoderFactory(this.context);
encoderFactory = new DefaultEncoderFactory.Builder(this.context).build(); encoderFactory = new DefaultEncoderFactory.Builder(this.context).build();
frameProcessorFactory = new GlEffectsFrameProcessor.Factory(); frameProcessorFactory = new GlEffectsFrameProcessor.Factory();
...@@ -288,7 +291,8 @@ public final class Transformer { ...@@ -288,7 +291,8 @@ public final class Transformer {
/** /**
* Sets the {@link AssetLoader.Factory} to be used to retrieve the samples to transform. * Sets the {@link AssetLoader.Factory} to be used to retrieve the samples to transform.
* *
* <p>The default value is a {@link DefaultAssetLoaderFactory}. * <p>The default value is a {@link DefaultAssetLoaderFactory} built with a {@link
* DefaultMediaSourceFactory}.
* *
* @param assetLoaderFactory An {@link AssetLoader.Factory}. * @param assetLoaderFactory An {@link AssetLoader.Factory}.
* @return This builder. * @return This builder.
...@@ -454,6 +458,15 @@ public final class Transformer { ...@@ -454,6 +458,15 @@ public final class Transformer {
if (transformationRequest.videoMimeType != null) { if (transformationRequest.videoMimeType != null) {
checkSampleMimeType(transformationRequest.videoMimeType); checkSampleMimeType(transformationRequest.videoMimeType);
} }
if (assetLoaderFactory == null) {
DefaultExtractorsFactory defaultExtractorsFactory = new DefaultExtractorsFactory();
if (transformationRequest.flattenForSlowMotion) {
defaultExtractorsFactory.setMp4ExtractorFlags(Mp4Extractor.FLAG_READ_SEF_DATA);
}
MediaSource.Factory mediaSourceFactory =
new DefaultMediaSourceFactory(context, defaultExtractorsFactory);
assetLoaderFactory = new DefaultAssetLoaderFactory(context, mediaSourceFactory, clock);
}
return new Transformer( return new Transformer(
context, context,
transformationRequest, transformationRequest,
......
...@@ -161,16 +161,11 @@ import org.checkerframework.checker.nullness.qual.MonotonicNonNull; ...@@ -161,16 +161,11 @@ import org.checkerframework.checker.nullness.qual.MonotonicNonNull;
ComponentListener componentListener = new ComponentListener(mediaItem, fallbackListener); ComponentListener componentListener = new ComponentListener(mediaItem, fallbackListener);
assetLoader = assetLoader =
assetLoaderFactory assetLoaderFactory
.setContext(context)
.setMediaItem(mediaItem)
.setRemoveAudio(removeAudio) .setRemoveAudio(removeAudio)
.setRemoveVideo(removeVideo) .setRemoveVideo(removeVideo)
.setFlattenVideoForSlowMotion(transformationRequest.flattenForSlowMotion) .setFlattenVideoForSlowMotion(transformationRequest.flattenForSlowMotion)
.setDecoderFactory(this.decoderFactory) .setDecoderFactory(this.decoderFactory)
.setLooper(internalLooper) .createAssetLoader(mediaItem, internalLooper, componentListener);
.setListener(componentListener)
.setClock(clock)
.createAssetLoader();
samplePipelines = new ArrayList<>(); samplePipelines = new ArrayList<>();
silentSamplePipelineIndex = C.INDEX_UNSET; silentSamplePipelineIndex = C.INDEX_UNSET;
dequeueBufferConditionVariable = new ConditionVariable(); dequeueBufferConditionVariable = new ConditionVariable();
......
...@@ -28,6 +28,8 @@ import androidx.test.ext.junit.runners.AndroidJUnit4; ...@@ -28,6 +28,8 @@ import androidx.test.ext.junit.runners.AndroidJUnit4;
import com.google.android.exoplayer2.Format; import com.google.android.exoplayer2.Format;
import com.google.android.exoplayer2.MediaItem; import com.google.android.exoplayer2.MediaItem;
import com.google.android.exoplayer2.decoder.DecoderInputBuffer; import com.google.android.exoplayer2.decoder.DecoderInputBuffer;
import com.google.android.exoplayer2.source.DefaultMediaSourceFactory;
import com.google.android.exoplayer2.source.MediaSource;
import com.google.android.exoplayer2.util.Clock; import com.google.android.exoplayer2.util.Clock;
import java.time.Duration; import java.time.Duration;
import java.util.concurrent.atomic.AtomicBoolean; import java.util.concurrent.atomic.AtomicBoolean;
...@@ -116,18 +118,14 @@ public class ExoPlayerAssetLoaderTest { ...@@ -116,18 +118,14 @@ public class ExoPlayerAssetLoaderTest {
private static AssetLoader getAssetLoader( private static AssetLoader getAssetLoader(
Looper looper, AssetLoader.Listener listener, Clock clock) { Looper looper, AssetLoader.Listener listener, Clock clock) {
Context context = ApplicationProvider.getApplicationContext(); Context context = ApplicationProvider.getApplicationContext();
MediaSource.Factory mediaSourceFactory = new DefaultMediaSourceFactory(context);
MediaItem mediaItem = MediaItem.fromUri("asset:///media/mp4/sample.mp4"); MediaItem mediaItem = MediaItem.fromUri("asset:///media/mp4/sample.mp4");
return new ExoPlayerAssetLoader.Factory() return new ExoPlayerAssetLoader.Factory(context, mediaSourceFactory, clock)
.setContext(context)
.setMediaItem(mediaItem)
.setRemoveAudio(false) .setRemoveAudio(false)
.setRemoveVideo(false) .setRemoveVideo(false)
.setFlattenVideoForSlowMotion(false) .setFlattenVideoForSlowMotion(false)
.setDecoderFactory(new DefaultDecoderFactory(context)) .setDecoderFactory(new DefaultDecoderFactory(context))
.setLooper(looper) .createAssetLoader(mediaItem, looper, listener);
.setListener(listener)
.setClock(clock)
.createAssetLoader();
} }
private static final class FakeSampleConsumer implements SampleConsumer { private static final class FakeSampleConsumer implements SampleConsumer {
......
...@@ -23,7 +23,6 @@ import static com.google.android.exoplayer2.transformer.Transformer.PROGRESS_STA ...@@ -23,7 +23,6 @@ import static com.google.android.exoplayer2.transformer.Transformer.PROGRESS_STA
import static com.google.android.exoplayer2.transformer.Transformer.PROGRESS_STATE_NOT_STARTED; import static com.google.android.exoplayer2.transformer.Transformer.PROGRESS_STATE_NOT_STARTED;
import static com.google.android.exoplayer2.transformer.Transformer.PROGRESS_STATE_UNAVAILABLE; import static com.google.android.exoplayer2.transformer.Transformer.PROGRESS_STATE_UNAVAILABLE;
import static com.google.android.exoplayer2.transformer.Transformer.PROGRESS_STATE_WAITING_FOR_AVAILABILITY; import static com.google.android.exoplayer2.transformer.Transformer.PROGRESS_STATE_WAITING_FOR_AVAILABILITY;
import static com.google.android.exoplayer2.util.Assertions.checkNotNull;
import static com.google.common.truth.Truth.assertThat; import static com.google.common.truth.Truth.assertThat;
import static org.junit.Assert.assertThrows; import static org.junit.Assert.assertThrows;
import static org.mockito.ArgumentMatchers.any; import static org.mockito.ArgumentMatchers.any;
...@@ -59,7 +58,6 @@ import com.google.android.exoplayer2.source.DefaultMediaSourceFactory; ...@@ -59,7 +58,6 @@ import com.google.android.exoplayer2.source.DefaultMediaSourceFactory;
import com.google.android.exoplayer2.source.MediaSource; import com.google.android.exoplayer2.source.MediaSource;
import com.google.android.exoplayer2.testutil.DumpFileAsserts; import com.google.android.exoplayer2.testutil.DumpFileAsserts;
import com.google.android.exoplayer2.testutil.FakeClock; import com.google.android.exoplayer2.testutil.FakeClock;
import com.google.android.exoplayer2.util.Clock;
import com.google.android.exoplayer2.util.MimeTypes; import com.google.android.exoplayer2.util.MimeTypes;
import com.google.android.exoplayer2.util.Util; import com.google.android.exoplayer2.util.Util;
import com.google.common.collect.ImmutableList; import com.google.common.collect.ImmutableList;
...@@ -529,7 +527,8 @@ public final class TransformerEndToEndTest { ...@@ -529,7 +527,8 @@ public final class TransformerEndToEndTest {
MediaSource.Factory mediaSourceFactory = MediaSource.Factory mediaSourceFactory =
new DefaultMediaSourceFactory( new DefaultMediaSourceFactory(
context, new SlowExtractorsFactory(/* delayBetweenReadsMs= */ 10)); context, new SlowExtractorsFactory(/* delayBetweenReadsMs= */ 10));
AssetLoader.Factory assetLoaderFactory = new ExoPlayerAssetLoader.Factory(mediaSourceFactory); AssetLoader.Factory assetLoaderFactory =
new ExoPlayerAssetLoader.Factory(context, mediaSourceFactory, clock);
Muxer.Factory muxerFactory = new TestMuxerFactory(/* maxDelayBetweenSamplesMs= */ 1); Muxer.Factory muxerFactory = new TestMuxerFactory(/* maxDelayBetweenSamplesMs= */ 1);
Transformer transformer = Transformer transformer =
createTransformerBuilder(/* enableFallback= */ false) createTransformerBuilder(/* enableFallback= */ false)
...@@ -1079,8 +1078,6 @@ public final class TransformerEndToEndTest { ...@@ -1079,8 +1078,6 @@ public final class TransformerEndToEndTest {
private final @SupportedOutputTypes int supportedOutputTypes; private final @SupportedOutputTypes int supportedOutputTypes;
@Nullable private final AtomicReference<SampleConsumer> sampleConsumerRef; @Nullable private final AtomicReference<SampleConsumer> sampleConsumerRef;
@Nullable private AssetLoader.Listener listener;
public Factory( public Factory(
@SupportedOutputTypes int supportedOutputTypes, @SupportedOutputTypes int supportedOutputTypes,
@Nullable AtomicReference<SampleConsumer> sampleConsumerRef) { @Nullable AtomicReference<SampleConsumer> sampleConsumerRef) {
...@@ -1089,16 +1086,6 @@ public final class TransformerEndToEndTest { ...@@ -1089,16 +1086,6 @@ public final class TransformerEndToEndTest {
} }
@Override @Override
public AssetLoader.Factory setContext(Context context) {
return this;
}
@Override
public AssetLoader.Factory setMediaItem(MediaItem mediaItem) {
return this;
}
@Override
public AssetLoader.Factory setRemoveAudio(boolean removeAudio) { public AssetLoader.Factory setRemoveAudio(boolean removeAudio) {
return this; return this;
} }
...@@ -1119,24 +1106,8 @@ public final class TransformerEndToEndTest { ...@@ -1119,24 +1106,8 @@ public final class TransformerEndToEndTest {
} }
@Override @Override
public AssetLoader.Factory setLooper(Looper looper) { public AssetLoader createAssetLoader(MediaItem mediaItem, Looper looper, Listener listener) {
return this; return new FakeAssetLoader(listener, supportedOutputTypes, sampleConsumerRef);
}
@Override
public AssetLoader.Factory setListener(Listener listener) {
this.listener = listener;
return this;
}
@Override
public AssetLoader.Factory setClock(Clock clock) {
return this;
}
@Override
public AssetLoader createAssetLoader() {
return new FakeAssetLoader(checkNotNull(listener), supportedOutputTypes, sampleConsumerRef);
} }
} }
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or sign in to comment