diff --git a/demos/gl/src/main/java/com/google/android/exoplayer2/gldemo/MainActivity.java b/demos/gl/src/main/java/com/google/android/exoplayer2/gldemo/MainActivity.java index 191602dfb8..abccb41c49 100644 --- a/demos/gl/src/main/java/com/google/android/exoplayer2/gldemo/MainActivity.java +++ b/demos/gl/src/main/java/com/google/android/exoplayer2/gldemo/MainActivity.java @@ -36,8 +36,8 @@ import com.google.android.exoplayer2.source.ProgressiveMediaSource; import com.google.android.exoplayer2.source.dash.DashMediaSource; import com.google.android.exoplayer2.ui.PlayerView; import com.google.android.exoplayer2.upstream.DataSource; -import com.google.android.exoplayer2.upstream.DefaultDataSourceFactory; -import com.google.android.exoplayer2.upstream.DefaultHttpDataSourceFactory; +import com.google.android.exoplayer2.upstream.DefaultDataSource; +import com.google.android.exoplayer2.upstream.DefaultHttpDataSource; import com.google.android.exoplayer2.upstream.HttpDataSource; import com.google.android.exoplayer2.util.Assertions; import com.google.android.exoplayer2.util.EventLogger; @@ -144,7 +144,7 @@ public final class MainActivity extends Activity { String drmScheme = Assertions.checkNotNull(intent.getStringExtra(DRM_SCHEME_EXTRA)); String drmLicenseUrl = Assertions.checkNotNull(intent.getStringExtra(DRM_LICENSE_URL_EXTRA)); UUID drmSchemeUuid = Assertions.checkNotNull(Util.getDrmUuid(drmScheme)); - HttpDataSource.Factory licenseDataSourceFactory = new DefaultHttpDataSourceFactory(); + HttpDataSource.Factory licenseDataSourceFactory = new DefaultHttpDataSource.Factory(); HttpMediaDrmCallback drmCallback = new HttpMediaDrmCallback(drmLicenseUrl, licenseDataSourceFactory); drmSessionManager = @@ -155,7 +155,7 @@ public final class MainActivity extends Activity { drmSessionManager = DrmSessionManager.DRM_UNSUPPORTED; } - DataSource.Factory dataSourceFactory = new DefaultDataSourceFactory(this); + DataSource.Factory dataSourceFactory = new DefaultDataSource.Factory(this); MediaSource mediaSource; @C.ContentType int type = Util.inferContentType(uri, intent.getStringExtra(EXTENSION_EXTRA)); if (type == C.TYPE_DASH) { diff --git a/demos/main/src/main/java/com/google/android/exoplayer2/demo/DemoUtil.java b/demos/main/src/main/java/com/google/android/exoplayer2/demo/DemoUtil.java index 2d3f606b8a..dc283ddfe6 100644 --- a/demos/main/src/main/java/com/google/android/exoplayer2/demo/DemoUtil.java +++ b/demos/main/src/main/java/com/google/android/exoplayer2/demo/DemoUtil.java @@ -29,7 +29,7 @@ import com.google.android.exoplayer2.offline.DefaultDownloadIndex; import com.google.android.exoplayer2.offline.DownloadManager; import com.google.android.exoplayer2.ui.DownloadNotificationHelper; import com.google.android.exoplayer2.upstream.DataSource; -import com.google.android.exoplayer2.upstream.DefaultDataSourceFactory; +import com.google.android.exoplayer2.upstream.DefaultDataSource; import com.google.android.exoplayer2.upstream.DefaultHttpDataSource; import com.google.android.exoplayer2.upstream.HttpDataSource; import com.google.android.exoplayer2.upstream.cache.Cache; @@ -127,8 +127,8 @@ public final class DemoUtil { public static synchronized DataSource.Factory getDataSourceFactory(Context context) { if (dataSourceFactory == null) { context = context.getApplicationContext(); - DefaultDataSourceFactory upstreamFactory = - new DefaultDataSourceFactory(context, getHttpDataSourceFactory(context)); + DefaultDataSource.Factory upstreamFactory = + new DefaultDataSource.Factory(context, getHttpDataSourceFactory(context)); dataSourceFactory = buildReadOnlyCacheDataSource(upstreamFactory, getDownloadCache(context)); } return dataSourceFactory; diff --git a/demos/surface/src/main/java/com/google/android/exoplayer2/surfacedemo/MainActivity.java b/demos/surface/src/main/java/com/google/android/exoplayer2/surfacedemo/MainActivity.java index a31cd7efe0..6a40cd48a4 100644 --- a/demos/surface/src/main/java/com/google/android/exoplayer2/surfacedemo/MainActivity.java +++ b/demos/surface/src/main/java/com/google/android/exoplayer2/surfacedemo/MainActivity.java @@ -40,8 +40,8 @@ import com.google.android.exoplayer2.source.ProgressiveMediaSource; import com.google.android.exoplayer2.source.dash.DashMediaSource; import com.google.android.exoplayer2.ui.PlayerControlView; import com.google.android.exoplayer2.upstream.DataSource; -import com.google.android.exoplayer2.upstream.DefaultDataSourceFactory; -import com.google.android.exoplayer2.upstream.DefaultHttpDataSourceFactory; +import com.google.android.exoplayer2.upstream.DefaultDataSource; +import com.google.android.exoplayer2.upstream.DefaultHttpDataSource; import com.google.android.exoplayer2.upstream.HttpDataSource; import com.google.android.exoplayer2.util.Assertions; import com.google.android.exoplayer2.util.Util; @@ -189,7 +189,7 @@ public final class MainActivity extends Activity { String drmScheme = Assertions.checkNotNull(intent.getStringExtra(DRM_SCHEME_EXTRA)); String drmLicenseUrl = Assertions.checkNotNull(intent.getStringExtra(DRM_LICENSE_URL_EXTRA)); UUID drmSchemeUuid = Assertions.checkNotNull(Util.getDrmUuid(drmScheme)); - HttpDataSource.Factory licenseDataSourceFactory = new DefaultHttpDataSourceFactory(); + HttpDataSource.Factory licenseDataSourceFactory = new DefaultHttpDataSource.Factory(); HttpMediaDrmCallback drmCallback = new HttpMediaDrmCallback(drmLicenseUrl, licenseDataSourceFactory); drmSessionManager = @@ -200,7 +200,7 @@ public final class MainActivity extends Activity { drmSessionManager = DrmSessionManager.DRM_UNSUPPORTED; } - DataSource.Factory dataSourceFactory = new DefaultDataSourceFactory(this); + DataSource.Factory dataSourceFactory = new DefaultDataSource.Factory(this); MediaSource mediaSource; @C.ContentType int type = Util.inferContentType(uri, intent.getStringExtra(EXTENSION_EXTRA)); if (type == C.TYPE_DASH) { diff --git a/docs/customization.md b/docs/customization.md index 7a5cf7e51a..38024a816b 100644 --- a/docs/customization.md +++ b/docs/customization.md @@ -53,10 +53,10 @@ default network stack with cross-protocol redirects enabled: HttpDataSource.Factory httpDataSourceFactory = new DefaultHttpDataSource.Factory().setAllowCrossProtocolRedirects(true); -// Wrap the HttpDataSource.Factory in a DefaultDataSourceFactory, which adds in +// Wrap the HttpDataSource.Factory in a DefaultDataSource.Factory, which adds in // support for requesting data from other sources (e.g., files, resources, etc). -DefaultDataSourceFactory dataSourceFactory = - new DefaultDataSourceFactory(context, httpDataSourceFactory); +DefaultDataSource.Factory dataSourceFactory = + new DefaultDataSource.Factory(context, httpDataSourceFactory); // Inject the DefaultDataSourceFactory when creating the player. SimpleExoPlayer player = diff --git a/docs/network-stacks.md b/docs/network-stacks.md index e0f2197176..ee89344bad 100644 --- a/docs/network-stacks.md +++ b/docs/network-stacks.md @@ -40,11 +40,11 @@ the Cronet network stack and also support playback of non-http(s) content. CronetDataSource.Factory cronetDataSourceFactory = new CronetDataSource.Factory(cronetEngine, executor); -// Wrap the CronetDataSource.Factory in a DefaultDataSourceFactory, which adds +// Wrap the CronetDataSource.Factory in a DefaultDataSource.Factory, which adds // in support for requesting data from other sources (e.g., files, resources, // etc). -DefaultDataSourceFactory dataSourceFactory = - new DefaultDataSourceFactory( +DefaultDataSource.Factory dataSourceFactory = + new DefaultDataSource.Factory( context, /* baseDataSourceFactory= */ cronetDataSourceFactory); diff --git a/extensions/flac/src/androidTest/java/com/google/android/exoplayer2/ext/flac/FlacExtractorSeekTest.java b/extensions/flac/src/androidTest/java/com/google/android/exoplayer2/ext/flac/FlacExtractorSeekTest.java index e6e66fbe29..21a2558dd9 100644 --- a/extensions/flac/src/androidTest/java/com/google/android/exoplayer2/ext/flac/FlacExtractorSeekTest.java +++ b/extensions/flac/src/androidTest/java/com/google/android/exoplayer2/ext/flac/FlacExtractorSeekTest.java @@ -26,7 +26,6 @@ import com.google.android.exoplayer2.testutil.FakeExtractorOutput; import com.google.android.exoplayer2.testutil.FakeTrackOutput; import com.google.android.exoplayer2.testutil.TestUtil; import com.google.android.exoplayer2.upstream.DefaultDataSource; -import com.google.android.exoplayer2.upstream.DefaultDataSourceFactory; import com.google.android.exoplayer2.util.Util; import java.io.IOException; import java.util.List; @@ -43,10 +42,10 @@ public final class FlacExtractorSeekTest { "media/flac/bear_no_seek_table_no_num_samples.flac"; private static final int DURATION_US = 2_741_000; - private FlacExtractor extractor = new FlacExtractor(); - private FakeExtractorOutput extractorOutput = new FakeExtractorOutput(); - private DefaultDataSource dataSource = - new DefaultDataSourceFactory(ApplicationProvider.getApplicationContext()).createDataSource(); + private final FlacExtractor extractor = new FlacExtractor(); + private final FakeExtractorOutput extractorOutput = new FakeExtractorOutput(); + private final DefaultDataSource dataSource = + new DefaultDataSource.Factory(ApplicationProvider.getApplicationContext()).createDataSource(); @Test public void flacExtractorReads_seekTable_returnSeekableSeekMap() throws IOException { diff --git a/extensions/flac/src/androidTest/java/com/google/android/exoplayer2/ext/flac/FlacPlaybackTest.java b/extensions/flac/src/androidTest/java/com/google/android/exoplayer2/ext/flac/FlacPlaybackTest.java index c2cfc4547d..ecf7d5f934 100644 --- a/extensions/flac/src/androidTest/java/com/google/android/exoplayer2/ext/flac/FlacPlaybackTest.java +++ b/extensions/flac/src/androidTest/java/com/google/android/exoplayer2/ext/flac/FlacPlaybackTest.java @@ -37,7 +37,7 @@ import com.google.android.exoplayer2.source.MediaSource; import com.google.android.exoplayer2.source.ProgressiveMediaSource; import com.google.android.exoplayer2.testutil.CapturingAudioSink; import com.google.android.exoplayer2.testutil.DumpFileAsserts; -import com.google.android.exoplayer2.upstream.DefaultDataSourceFactory; +import com.google.android.exoplayer2.upstream.DefaultDataSource; import org.junit.Before; import org.junit.Test; import org.junit.runner.RunWith; @@ -120,7 +120,7 @@ public class FlacPlaybackTest { player.addListener(this); MediaSource mediaSource = new ProgressiveMediaSource.Factory( - new DefaultDataSourceFactory(context), MatroskaExtractor.FACTORY) + new DefaultDataSource.Factory(context), MatroskaExtractor.FACTORY) .createMediaSource(MediaItem.fromUri(uri)); player.setMediaSource(mediaSource); player.prepare(); diff --git a/extensions/ima/src/androidTest/java/com/google/android/exoplayer2/ext/ima/ImaPlaybackTest.java b/extensions/ima/src/androidTest/java/com/google/android/exoplayer2/ext/ima/ImaPlaybackTest.java index d2f70d5e1b..d467743dfa 100644 --- a/extensions/ima/src/androidTest/java/com/google/android/exoplayer2/ext/ima/ImaPlaybackTest.java +++ b/extensions/ima/src/androidTest/java/com/google/android/exoplayer2/ext/ima/ImaPlaybackTest.java @@ -44,7 +44,7 @@ import com.google.android.exoplayer2.testutil.TestUtil; import com.google.android.exoplayer2.trackselection.MappingTrackSelector; import com.google.android.exoplayer2.upstream.DataSource; import com.google.android.exoplayer2.upstream.DataSpec; -import com.google.android.exoplayer2.upstream.DefaultDataSourceFactory; +import com.google.android.exoplayer2.upstream.DefaultDataSource; import com.google.android.exoplayer2.util.Assertions; import com.google.android.exoplayer2.util.Util; import java.util.ArrayList; @@ -235,7 +235,7 @@ public final class ImaPlaybackTest { protected MediaSource buildSource( HostActivity host, DrmSessionManager drmSessionManager, FrameLayout overlayFrameLayout) { Context context = host.getApplicationContext(); - DataSource.Factory dataSourceFactory = new DefaultDataSourceFactory(context); + DataSource.Factory dataSourceFactory = new DefaultDataSource.Factory(context); MediaSource contentMediaSource = new DefaultMediaSourceFactory(context).createMediaSource(MediaItem.fromUri(contentUri)); return new AdsMediaSource( diff --git a/extensions/media2/src/androidTest/java/com/google/android/exoplayer2/ext/media2/PlayerTestRule.java b/extensions/media2/src/androidTest/java/com/google/android/exoplayer2/ext/media2/PlayerTestRule.java index 3c202ba375..89a58312ef 100644 --- a/extensions/media2/src/androidTest/java/com/google/android/exoplayer2/ext/media2/PlayerTestRule.java +++ b/extensions/media2/src/androidTest/java/com/google/android/exoplayer2/ext/media2/PlayerTestRule.java @@ -25,7 +25,7 @@ import com.google.android.exoplayer2.SimpleExoPlayer; import com.google.android.exoplayer2.source.DefaultMediaSourceFactory; import com.google.android.exoplayer2.upstream.DataSource; import com.google.android.exoplayer2.upstream.DataSpec; -import com.google.android.exoplayer2.upstream.DefaultDataSourceFactory; +import com.google.android.exoplayer2.upstream.DefaultDataSource; import com.google.android.exoplayer2.upstream.TransferListener; import java.io.IOException; import java.util.List; @@ -116,10 +116,10 @@ import org.junit.rules.ExternalResource; private final class InstrumentingDataSourceFactory implements DataSource.Factory { - private final DefaultDataSourceFactory defaultDataSourceFactory; + private final DefaultDataSource.Factory defaultDataSourceFactory; public InstrumentingDataSourceFactory(Context context) { - defaultDataSourceFactory = new DefaultDataSourceFactory(context); + defaultDataSourceFactory = new DefaultDataSource.Factory(context); } @Override diff --git a/extensions/opus/src/androidTest/java/com/google/android/exoplayer2/ext/opus/OpusPlaybackTest.java b/extensions/opus/src/androidTest/java/com/google/android/exoplayer2/ext/opus/OpusPlaybackTest.java index d5d1adf899..0ca53d4b41 100644 --- a/extensions/opus/src/androidTest/java/com/google/android/exoplayer2/ext/opus/OpusPlaybackTest.java +++ b/extensions/opus/src/androidTest/java/com/google/android/exoplayer2/ext/opus/OpusPlaybackTest.java @@ -32,7 +32,7 @@ import com.google.android.exoplayer2.SimpleExoPlayer; import com.google.android.exoplayer2.extractor.mkv.MatroskaExtractor; import com.google.android.exoplayer2.source.MediaSource; import com.google.android.exoplayer2.source.ProgressiveMediaSource; -import com.google.android.exoplayer2.upstream.DefaultDataSourceFactory; +import com.google.android.exoplayer2.upstream.DefaultDataSource; import org.junit.Before; import org.junit.Test; import org.junit.runner.RunWith; @@ -100,7 +100,7 @@ public class OpusPlaybackTest { player.addListener(this); MediaSource mediaSource = new ProgressiveMediaSource.Factory( - new DefaultDataSourceFactory(context), MatroskaExtractor.FACTORY) + new DefaultDataSource.Factory(context), MatroskaExtractor.FACTORY) .createMediaSource(MediaItem.fromUri(uri)); player.setMediaSource(mediaSource); player.prepare(); diff --git a/extensions/vp9/src/androidTest/java/com/google/android/exoplayer2/ext/vp9/VpxPlaybackTest.java b/extensions/vp9/src/androidTest/java/com/google/android/exoplayer2/ext/vp9/VpxPlaybackTest.java index b9d841ccf8..37b4d4110b 100644 --- a/extensions/vp9/src/androidTest/java/com/google/android/exoplayer2/ext/vp9/VpxPlaybackTest.java +++ b/extensions/vp9/src/androidTest/java/com/google/android/exoplayer2/ext/vp9/VpxPlaybackTest.java @@ -33,7 +33,7 @@ import com.google.android.exoplayer2.SimpleExoPlayer; import com.google.android.exoplayer2.extractor.mkv.MatroskaExtractor; import com.google.android.exoplayer2.source.MediaSource; import com.google.android.exoplayer2.source.ProgressiveMediaSource; -import com.google.android.exoplayer2.upstream.DefaultDataSourceFactory; +import com.google.android.exoplayer2.upstream.DefaultDataSource; import com.google.android.exoplayer2.util.Log; import com.google.android.exoplayer2.video.VideoDecoderGLSurfaceView; import org.junit.Before; @@ -134,7 +134,7 @@ public class VpxPlaybackTest { player.addListener(this); MediaSource mediaSource = new ProgressiveMediaSource.Factory( - new DefaultDataSourceFactory(context), MatroskaExtractor.FACTORY) + new DefaultDataSource.Factory(context), MatroskaExtractor.FACTORY) .createMediaSource(MediaItem.fromUri(uri)); player.setVideoSurfaceView(new VideoDecoderGLSurfaceView(context)); player.setMediaSource(mediaSource); diff --git a/library/core/src/main/java/com/google/android/exoplayer2/source/DefaultMediaSourceFactory.java b/library/core/src/main/java/com/google/android/exoplayer2/source/DefaultMediaSourceFactory.java index 3a2fbdcd3b..445f82432c 100644 --- a/library/core/src/main/java/com/google/android/exoplayer2/source/DefaultMediaSourceFactory.java +++ b/library/core/src/main/java/com/google/android/exoplayer2/source/DefaultMediaSourceFactory.java @@ -32,7 +32,7 @@ import com.google.android.exoplayer2.source.ads.AdsMediaSource; import com.google.android.exoplayer2.ui.AdViewProvider; import com.google.android.exoplayer2.upstream.DataSource; import com.google.android.exoplayer2.upstream.DataSpec; -import com.google.android.exoplayer2.upstream.DefaultDataSourceFactory; +import com.google.android.exoplayer2.upstream.DefaultDataSource; import com.google.android.exoplayer2.upstream.HttpDataSource; import com.google.android.exoplayer2.upstream.LoadErrorHandlingPolicy; import com.google.android.exoplayer2.util.Assertions; @@ -119,7 +119,7 @@ public final class DefaultMediaSourceFactory implements MediaSourceFactory { * @param context Any context. */ public DefaultMediaSourceFactory(Context context) { - this(new DefaultDataSourceFactory(context)); + this(new DefaultDataSource.Factory(context)); } /** @@ -130,7 +130,7 @@ public final class DefaultMediaSourceFactory implements MediaSourceFactory { * its container. */ public DefaultMediaSourceFactory(Context context, ExtractorsFactory extractorsFactory) { - this(new DefaultDataSourceFactory(context), extractorsFactory); + this(new DefaultDataSource.Factory(context), extractorsFactory); } /** diff --git a/library/core/src/main/java/com/google/android/exoplayer2/upstream/DefaultDataSource.java b/library/core/src/main/java/com/google/android/exoplayer2/upstream/DefaultDataSource.java index c2963f386e..11b57d2039 100644 --- a/library/core/src/main/java/com/google/android/exoplayer2/upstream/DefaultDataSource.java +++ b/library/core/src/main/java/com/google/android/exoplayer2/upstream/DefaultDataSource.java @@ -55,6 +55,63 @@ import java.util.Map; */ public final class DefaultDataSource implements DataSource { + /** {@link DataSource.Factory} for {@link DefaultDataSource} instances. */ + public static final class Factory implements DataSource.Factory { + + private final Context context; + private final DataSource.Factory baseDataSourceFactory; + @Nullable private TransferListener transferListener; + + /** + * Creates an instance. + * + * @param context A context. + */ + public Factory(Context context) { + this(context, new DefaultHttpDataSource.Factory()); + } + + /** + * Creates an instance. + * + * @param context A context. + * @param baseDataSourceFactory The {@link DataSource.Factory} to be used to create base {@link + * DataSource DataSources} for {@link DefaultDataSource} instances. The base {@link + * DataSource} is normally an {@link HttpDataSource}, and is responsible for fetching data + * over HTTP and HTTPS, as well as any other URI schemes not otherwise supported by {@link + * DefaultDataSource}. + */ + public Factory(Context context, DataSource.Factory baseDataSourceFactory) { + this.context = context.getApplicationContext(); + this.baseDataSourceFactory = baseDataSourceFactory; + } + + /** + * Sets the {@link TransferListener} that will be used. + * + *

The default is {@code null}. + * + *

See {@link DataSource#addTransferListener(TransferListener)}. + * + * @param transferListener The listener that will be used. + * @return This factory. + */ + public Factory setTransferListener(@Nullable TransferListener transferListener) { + this.transferListener = transferListener; + return this; + } + + @Override + public DefaultDataSource createDataSource() { + DefaultDataSource dataSource = + new DefaultDataSource(context, baseDataSourceFactory.createDataSource()); + if (transferListener != null) { + dataSource.addTransferListener(transferListener); + } + return dataSource; + } + } + private static final String TAG = "DefaultDataSource"; private static final String SCHEME_ASSET = "asset"; diff --git a/library/core/src/main/java/com/google/android/exoplayer2/upstream/DefaultDataSourceFactory.java b/library/core/src/main/java/com/google/android/exoplayer2/upstream/DefaultDataSourceFactory.java index fb3df995ae..8bb62217e9 100644 --- a/library/core/src/main/java/com/google/android/exoplayer2/upstream/DefaultDataSourceFactory.java +++ b/library/core/src/main/java/com/google/android/exoplayer2/upstream/DefaultDataSourceFactory.java @@ -19,10 +19,8 @@ import android.content.Context; import androidx.annotation.Nullable; import com.google.android.exoplayer2.upstream.DataSource.Factory; -/** - * A {@link Factory} that produces {@link DefaultDataSource} instances that delegate to {@link - * DefaultHttpDataSource}s for non-file/asset/content URIs. - */ +/** @deprecated Use {@link DefaultDataSource.Factory} instead. */ +@Deprecated public final class DefaultDataSourceFactory implements Factory { private final Context context; diff --git a/library/core/src/main/java/com/google/android/exoplayer2/upstream/PriorityDataSource.java b/library/core/src/main/java/com/google/android/exoplayer2/upstream/PriorityDataSource.java index 33e57ee2d1..c8dde48192 100644 --- a/library/core/src/main/java/com/google/android/exoplayer2/upstream/PriorityDataSource.java +++ b/library/core/src/main/java/com/google/android/exoplayer2/upstream/PriorityDataSource.java @@ -38,6 +38,37 @@ import java.util.Map; */ public final class PriorityDataSource implements DataSource { + /** {@link DataSource.Factory} for {@link PriorityDataSource} instances. */ + public static final class Factory implements DataSource.Factory { + + private final DataSource.Factory upstreamFactory; + private final PriorityTaskManager priorityTaskManager; + private final int priority; + + /** + * Creates an instance. + * + * @param upstreamFactory A {@link DataSource.Factory} that provides upstream {@link DataSource + * DataSources} for {@link PriorityDataSource} instances created by the factory. + * @param priorityTaskManager The {@link PriorityTaskManager} to which tasks using {@link + * PriorityDataSource} instances created by this factory will be registered. + * @param priority The priority of the tasks using {@link PriorityDataSource} instances created + * by this factory. + */ + public Factory( + DataSource.Factory upstreamFactory, PriorityTaskManager priorityTaskManager, int priority) { + this.upstreamFactory = upstreamFactory; + this.priorityTaskManager = priorityTaskManager; + this.priority = priority; + } + + @Override + public PriorityDataSource createDataSource() { + return new PriorityDataSource( + upstreamFactory.createDataSource(), priorityTaskManager, priority); + } + } + private final DataSource upstream; private final PriorityTaskManager priorityTaskManager; private final int priority; diff --git a/library/core/src/main/java/com/google/android/exoplayer2/upstream/PriorityDataSourceFactory.java b/library/core/src/main/java/com/google/android/exoplayer2/upstream/PriorityDataSourceFactory.java index 8f61480300..ebef55a40a 100644 --- a/library/core/src/main/java/com/google/android/exoplayer2/upstream/PriorityDataSourceFactory.java +++ b/library/core/src/main/java/com/google/android/exoplayer2/upstream/PriorityDataSourceFactory.java @@ -18,7 +18,8 @@ package com.google.android.exoplayer2.upstream; import com.google.android.exoplayer2.upstream.DataSource.Factory; import com.google.android.exoplayer2.util.PriorityTaskManager; -/** A {@link DataSource.Factory} that produces {@link PriorityDataSource} instances. */ +/** @deprecated Use {@link PriorityDataSource.Factory}. */ +@Deprecated public final class PriorityDataSourceFactory implements Factory { private final Factory upstreamFactory; diff --git a/library/extractor/src/test/java/com/google/android/exoplayer2/extractor/amr/AmrExtractorSeekTest.java b/library/extractor/src/test/java/com/google/android/exoplayer2/extractor/amr/AmrExtractorSeekTest.java index 534cb2572f..0a7a7e36ef 100644 --- a/library/extractor/src/test/java/com/google/android/exoplayer2/extractor/amr/AmrExtractorSeekTest.java +++ b/library/extractor/src/test/java/com/google/android/exoplayer2/extractor/amr/AmrExtractorSeekTest.java @@ -25,7 +25,6 @@ import com.google.android.exoplayer2.testutil.FakeExtractorOutput; import com.google.android.exoplayer2.testutil.FakeTrackOutput; import com.google.android.exoplayer2.testutil.TestUtil; import com.google.android.exoplayer2.upstream.DefaultDataSource; -import com.google.android.exoplayer2.upstream.DefaultDataSourceFactory; import java.io.IOException; import java.util.List; import java.util.Random; @@ -51,7 +50,7 @@ public final class AmrExtractorSeekTest { @Before public void setUp() { dataSource = - new DefaultDataSourceFactory(ApplicationProvider.getApplicationContext()) + new DefaultDataSource.Factory(ApplicationProvider.getApplicationContext()) .createDataSource(); } diff --git a/library/extractor/src/test/java/com/google/android/exoplayer2/extractor/flac/FlacExtractorSeekTest.java b/library/extractor/src/test/java/com/google/android/exoplayer2/extractor/flac/FlacExtractorSeekTest.java index 16f92e2b4b..34bac567e4 100644 --- a/library/extractor/src/test/java/com/google/android/exoplayer2/extractor/flac/FlacExtractorSeekTest.java +++ b/library/extractor/src/test/java/com/google/android/exoplayer2/extractor/flac/FlacExtractorSeekTest.java @@ -26,7 +26,6 @@ import com.google.android.exoplayer2.testutil.FakeExtractorOutput; import com.google.android.exoplayer2.testutil.FakeTrackOutput; import com.google.android.exoplayer2.testutil.TestUtil; import com.google.android.exoplayer2.upstream.DefaultDataSource; -import com.google.android.exoplayer2.upstream.DefaultDataSourceFactory; import com.google.android.exoplayer2.util.Util; import java.io.IOException; import java.util.List; @@ -43,10 +42,10 @@ public class FlacExtractorSeekTest { "media/flac/bear_no_seek_table_no_num_samples.flac"; private static final int DURATION_US = 2_741_000; - private FlacExtractor extractor = new FlacExtractor(); - private FakeExtractorOutput extractorOutput = new FakeExtractorOutput(); - private DefaultDataSource dataSource = - new DefaultDataSourceFactory(ApplicationProvider.getApplicationContext()).createDataSource(); + private final FlacExtractor extractor = new FlacExtractor(); + private final FakeExtractorOutput extractorOutput = new FakeExtractorOutput(); + private final DefaultDataSource dataSource = + new DefaultDataSource.Factory(ApplicationProvider.getApplicationContext()).createDataSource(); @Test public void flacExtractorReads_seekTable_returnSeekableSeekMap() throws IOException { diff --git a/library/extractor/src/test/java/com/google/android/exoplayer2/extractor/flv/FlvExtractorSeekTest.java b/library/extractor/src/test/java/com/google/android/exoplayer2/extractor/flv/FlvExtractorSeekTest.java index e03b7ec6d6..bfd6c598f6 100644 --- a/library/extractor/src/test/java/com/google/android/exoplayer2/extractor/flv/FlvExtractorSeekTest.java +++ b/library/extractor/src/test/java/com/google/android/exoplayer2/extractor/flv/FlvExtractorSeekTest.java @@ -27,7 +27,6 @@ import com.google.android.exoplayer2.testutil.FakeExtractorOutput; import com.google.android.exoplayer2.testutil.FakeTrackOutput; import com.google.android.exoplayer2.testutil.TestUtil; import com.google.android.exoplayer2.upstream.DefaultDataSource; -import com.google.android.exoplayer2.upstream.DefaultDataSourceFactory; import com.google.android.exoplayer2.util.Util; import java.io.IOException; import java.util.List; @@ -53,7 +52,7 @@ public class FlvExtractorSeekTest { extractor = new FlvExtractor(); extractorOutput = new FakeExtractorOutput(); dataSource = - new DefaultDataSourceFactory(ApplicationProvider.getApplicationContext()) + new DefaultDataSource.Factory(ApplicationProvider.getApplicationContext()) .createDataSource(); } diff --git a/library/extractor/src/test/java/com/google/android/exoplayer2/extractor/mp3/ConstantBitrateSeekerTest.java b/library/extractor/src/test/java/com/google/android/exoplayer2/extractor/mp3/ConstantBitrateSeekerTest.java index e3137a106d..6779015379 100644 --- a/library/extractor/src/test/java/com/google/android/exoplayer2/extractor/mp3/ConstantBitrateSeekerTest.java +++ b/library/extractor/src/test/java/com/google/android/exoplayer2/extractor/mp3/ConstantBitrateSeekerTest.java @@ -26,7 +26,6 @@ import com.google.android.exoplayer2.testutil.FakeExtractorOutput; import com.google.android.exoplayer2.testutil.FakeTrackOutput; import com.google.android.exoplayer2.testutil.TestUtil; import com.google.android.exoplayer2.upstream.DefaultDataSource; -import com.google.android.exoplayer2.upstream.DefaultDataSourceFactory; import com.google.android.exoplayer2.util.Util; import java.io.IOException; import java.util.Arrays; @@ -52,7 +51,7 @@ public class ConstantBitrateSeekerTest { extractor = new Mp3Extractor(); extractorOutput = new FakeExtractorOutput(); dataSource = - new DefaultDataSourceFactory(ApplicationProvider.getApplicationContext()) + new DefaultDataSource.Factory(ApplicationProvider.getApplicationContext()) .createDataSource(); } diff --git a/library/extractor/src/test/java/com/google/android/exoplayer2/extractor/mp3/IndexSeekerTest.java b/library/extractor/src/test/java/com/google/android/exoplayer2/extractor/mp3/IndexSeekerTest.java index 24530c12f1..d2237505de 100644 --- a/library/extractor/src/test/java/com/google/android/exoplayer2/extractor/mp3/IndexSeekerTest.java +++ b/library/extractor/src/test/java/com/google/android/exoplayer2/extractor/mp3/IndexSeekerTest.java @@ -28,7 +28,6 @@ import com.google.android.exoplayer2.testutil.FakeExtractorOutput; import com.google.android.exoplayer2.testutil.FakeTrackOutput; import com.google.android.exoplayer2.testutil.TestUtil; import com.google.android.exoplayer2.upstream.DefaultDataSource; -import com.google.android.exoplayer2.upstream.DefaultDataSourceFactory; import com.google.android.exoplayer2.util.Util; import java.io.IOException; import java.util.List; @@ -52,7 +51,7 @@ public class IndexSeekerTest { extractor = new Mp3Extractor(FLAG_ENABLE_INDEX_SEEKING); extractorOutput = new FakeExtractorOutput(); dataSource = - new DefaultDataSourceFactory(ApplicationProvider.getApplicationContext()) + new DefaultDataSource.Factory(ApplicationProvider.getApplicationContext()) .createDataSource(); } diff --git a/library/extractor/src/test/java/com/google/android/exoplayer2/extractor/ts/AdtsExtractorSeekTest.java b/library/extractor/src/test/java/com/google/android/exoplayer2/extractor/ts/AdtsExtractorSeekTest.java index 2770d4ef66..5683fccedb 100644 --- a/library/extractor/src/test/java/com/google/android/exoplayer2/extractor/ts/AdtsExtractorSeekTest.java +++ b/library/extractor/src/test/java/com/google/android/exoplayer2/extractor/ts/AdtsExtractorSeekTest.java @@ -25,7 +25,6 @@ import com.google.android.exoplayer2.testutil.FakeExtractorOutput; import com.google.android.exoplayer2.testutil.FakeTrackOutput; import com.google.android.exoplayer2.testutil.TestUtil; import com.google.android.exoplayer2.upstream.DefaultDataSource; -import com.google.android.exoplayer2.upstream.DefaultDataSourceFactory; import java.io.IOException; import java.util.Arrays; import java.util.Random; @@ -49,7 +48,7 @@ public final class AdtsExtractorSeekTest { @Before public void setUp() { dataSource = - new DefaultDataSourceFactory(ApplicationProvider.getApplicationContext()) + new DefaultDataSource.Factory(ApplicationProvider.getApplicationContext()) .createDataSource(); } diff --git a/library/extractor/src/test/java/com/google/android/exoplayer2/extractor/ts/PsExtractorSeekTest.java b/library/extractor/src/test/java/com/google/android/exoplayer2/extractor/ts/PsExtractorSeekTest.java index d2d76d6695..bd02ae9711 100644 --- a/library/extractor/src/test/java/com/google/android/exoplayer2/extractor/ts/PsExtractorSeekTest.java +++ b/library/extractor/src/test/java/com/google/android/exoplayer2/extractor/ts/PsExtractorSeekTest.java @@ -33,7 +33,6 @@ import com.google.android.exoplayer2.testutil.FakeTrackOutput; import com.google.android.exoplayer2.testutil.TestUtil; import com.google.android.exoplayer2.upstream.DataSpec; import com.google.android.exoplayer2.upstream.DefaultDataSource; -import com.google.android.exoplayer2.upstream.DefaultDataSourceFactory; import com.google.android.exoplayer2.util.Util; import java.io.IOException; import java.util.Arrays; @@ -68,7 +67,7 @@ public final class PsExtractorSeekTest { expectedTrackOutput = expectedOutput.trackOutputs.get(VIDEO_TRACK_ID); dataSource = - new DefaultDataSourceFactory(ApplicationProvider.getApplicationContext()) + new DefaultDataSource.Factory(ApplicationProvider.getApplicationContext()) .createDataSource(); totalInputLength = readInputLength(); } diff --git a/library/extractor/src/test/java/com/google/android/exoplayer2/extractor/ts/TsExtractorSeekTest.java b/library/extractor/src/test/java/com/google/android/exoplayer2/extractor/ts/TsExtractorSeekTest.java index a796f3c994..32143c22ae 100644 --- a/library/extractor/src/test/java/com/google/android/exoplayer2/extractor/ts/TsExtractorSeekTest.java +++ b/library/extractor/src/test/java/com/google/android/exoplayer2/extractor/ts/TsExtractorSeekTest.java @@ -28,7 +28,6 @@ import com.google.android.exoplayer2.testutil.FakeExtractorOutput; import com.google.android.exoplayer2.testutil.FakeTrackOutput; import com.google.android.exoplayer2.testutil.TestUtil; import com.google.android.exoplayer2.upstream.DefaultDataSource; -import com.google.android.exoplayer2.upstream.DefaultDataSourceFactory; import com.google.android.exoplayer2.util.Util; import java.io.IOException; import java.util.Arrays; @@ -62,7 +61,7 @@ public final class TsExtractorSeekTest { .get(AUDIO_TRACK_ID); dataSource = - new DefaultDataSourceFactory(ApplicationProvider.getApplicationContext()) + new DefaultDataSource.Factory(ApplicationProvider.getApplicationContext()) .createDataSource(); } diff --git a/playbacktests/src/androidTest/java/com/google/android/exoplayer2/playbacktests/gts/DashTestRunner.java b/playbacktests/src/androidTest/java/com/google/android/exoplayer2/playbacktests/gts/DashTestRunner.java index f023a73e9c..836c05bb22 100644 --- a/playbacktests/src/androidTest/java/com/google/android/exoplayer2/playbacktests/gts/DashTestRunner.java +++ b/playbacktests/src/androidTest/java/com/google/android/exoplayer2/playbacktests/gts/DashTestRunner.java @@ -51,8 +51,8 @@ import com.google.android.exoplayer2.trackselection.ExoTrackSelection; import com.google.android.exoplayer2.trackselection.MappingTrackSelector; import com.google.android.exoplayer2.trackselection.RandomTrackSelection; import com.google.android.exoplayer2.upstream.DataSource; -import com.google.android.exoplayer2.upstream.DefaultDataSourceFactory; -import com.google.android.exoplayer2.upstream.DefaultHttpDataSourceFactory; +import com.google.android.exoplayer2.upstream.DefaultDataSource; +import com.google.android.exoplayer2.upstream.DefaultHttpDataSource; import com.google.android.exoplayer2.upstream.DefaultLoadErrorHandlingPolicy; import com.google.android.exoplayer2.util.Assertions; import com.google.android.exoplayer2.util.Log; @@ -286,7 +286,7 @@ import java.util.List; return DrmSessionManager.DRM_UNSUPPORTED; } MediaDrmCallback drmCallback = - new HttpMediaDrmCallback(widevineLicenseUrl, new DefaultHttpDataSourceFactory()); + new HttpMediaDrmCallback(widevineLicenseUrl, new DefaultHttpDataSource.Factory()); DefaultDrmSessionManager drmSessionManager = new DefaultDrmSessionManager.Builder() .setUuidAndExoMediaDrmProvider( @@ -327,7 +327,7 @@ import java.util.List; DataSource.Factory dataSourceFactory = this.dataSourceFactory != null ? this.dataSourceFactory - : new DefaultDataSourceFactory(host); + : new DefaultDataSource.Factory(host); return new DashMediaSource.Factory(dataSourceFactory) .setDrmSessionManager(drmSessionManager) .setLoadErrorHandlingPolicy(new DefaultLoadErrorHandlingPolicy(MIN_LOADABLE_RETRY_COUNT))