summaryrefslogtreecommitdiffstats
path: root/mobile/android/exoplayer2/src/main/java/org/mozilla/thirdparty/com/google/android/exoplayer2/ExoPlayerFactory.java
diff options
context:
space:
mode:
Diffstat (limited to 'mobile/android/exoplayer2/src/main/java/org/mozilla/thirdparty/com/google/android/exoplayer2/ExoPlayerFactory.java')
-rw-r--r--mobile/android/exoplayer2/src/main/java/org/mozilla/thirdparty/com/google/android/exoplayer2/ExoPlayerFactory.java350
1 files changed, 350 insertions, 0 deletions
diff --git a/mobile/android/exoplayer2/src/main/java/org/mozilla/thirdparty/com/google/android/exoplayer2/ExoPlayerFactory.java b/mobile/android/exoplayer2/src/main/java/org/mozilla/thirdparty/com/google/android/exoplayer2/ExoPlayerFactory.java
new file mode 100644
index 0000000000..a2e89fc3cc
--- /dev/null
+++ b/mobile/android/exoplayer2/src/main/java/org/mozilla/thirdparty/com/google/android/exoplayer2/ExoPlayerFactory.java
@@ -0,0 +1,350 @@
+/*
+ * Copyright (C) 2016 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.mozilla.thirdparty.com.google.android.exoplayer2;
+
+import android.content.Context;
+import android.os.Looper;
+import androidx.annotation.Nullable;
+import org.mozilla.thirdparty.com.google.android.exoplayer2.analytics.AnalyticsCollector;
+import org.mozilla.thirdparty.com.google.android.exoplayer2.drm.DrmSessionManager;
+import org.mozilla.thirdparty.com.google.android.exoplayer2.drm.FrameworkMediaCrypto;
+import org.mozilla.thirdparty.com.google.android.exoplayer2.source.MediaSource;
+import org.mozilla.thirdparty.com.google.android.exoplayer2.trackselection.DefaultTrackSelector;
+import org.mozilla.thirdparty.com.google.android.exoplayer2.trackselection.TrackSelector;
+import org.mozilla.thirdparty.com.google.android.exoplayer2.upstream.BandwidthMeter;
+import org.mozilla.thirdparty.com.google.android.exoplayer2.upstream.DefaultBandwidthMeter;
+import org.mozilla.thirdparty.com.google.android.exoplayer2.util.Clock;
+import org.mozilla.thirdparty.com.google.android.exoplayer2.util.Util;
+
+/** @deprecated Use {@link SimpleExoPlayer.Builder} or {@link ExoPlayer.Builder} instead. */
+@Deprecated
+public final class ExoPlayerFactory {
+
+ private ExoPlayerFactory() {}
+
+ /**
+ * @deprecated Use {@link SimpleExoPlayer.Builder} instead. The {@link DrmSessionManager} cannot
+ * be passed to {@link SimpleExoPlayer.Builder} and should instead be injected into the {@link
+ * MediaSource} factories.
+ */
+ @Deprecated
+ @SuppressWarnings("deprecation")
+ public static SimpleExoPlayer newSimpleInstance(
+ Context context,
+ TrackSelector trackSelector,
+ LoadControl loadControl,
+ @Nullable DrmSessionManager<FrameworkMediaCrypto> drmSessionManager,
+ @DefaultRenderersFactory.ExtensionRendererMode int extensionRendererMode) {
+ RenderersFactory renderersFactory =
+ new DefaultRenderersFactory(context).setExtensionRendererMode(extensionRendererMode);
+ return newSimpleInstance(
+ context, renderersFactory, trackSelector, loadControl, drmSessionManager);
+ }
+
+ /**
+ * @deprecated Use {@link SimpleExoPlayer.Builder} instead. The {@link DrmSessionManager} cannot
+ * be passed to {@link SimpleExoPlayer.Builder} and should instead be injected into the {@link
+ * MediaSource} factories.
+ */
+ @Deprecated
+ @SuppressWarnings("deprecation")
+ public static SimpleExoPlayer newSimpleInstance(
+ Context context,
+ TrackSelector trackSelector,
+ LoadControl loadControl,
+ @Nullable DrmSessionManager<FrameworkMediaCrypto> drmSessionManager,
+ @DefaultRenderersFactory.ExtensionRendererMode int extensionRendererMode,
+ long allowedVideoJoiningTimeMs) {
+ RenderersFactory renderersFactory =
+ new DefaultRenderersFactory(context)
+ .setExtensionRendererMode(extensionRendererMode)
+ .setAllowedVideoJoiningTimeMs(allowedVideoJoiningTimeMs);
+ return newSimpleInstance(
+ context, renderersFactory, trackSelector, loadControl, drmSessionManager);
+ }
+
+ /** @deprecated Use {@link SimpleExoPlayer.Builder} instead. */
+ @Deprecated
+ @SuppressWarnings("deprecation")
+ public static SimpleExoPlayer newSimpleInstance(Context context) {
+ return newSimpleInstance(context, new DefaultTrackSelector(context));
+ }
+
+ /** @deprecated Use {@link SimpleExoPlayer.Builder} instead. */
+ @Deprecated
+ @SuppressWarnings("deprecation")
+ public static SimpleExoPlayer newSimpleInstance(Context context, TrackSelector trackSelector) {
+ return newSimpleInstance(context, new DefaultRenderersFactory(context), trackSelector);
+ }
+
+ /** @deprecated Use {@link SimpleExoPlayer.Builder} instead. */
+ @Deprecated
+ @SuppressWarnings("deprecation")
+ public static SimpleExoPlayer newSimpleInstance(
+ Context context, RenderersFactory renderersFactory, TrackSelector trackSelector) {
+ return newSimpleInstance(context, renderersFactory, trackSelector, new DefaultLoadControl());
+ }
+
+ /** @deprecated Use {@link SimpleExoPlayer.Builder} instead. */
+ @Deprecated
+ @SuppressWarnings("deprecation")
+ public static SimpleExoPlayer newSimpleInstance(
+ Context context, TrackSelector trackSelector, LoadControl loadControl) {
+ RenderersFactory renderersFactory = new DefaultRenderersFactory(context);
+ return newSimpleInstance(context, renderersFactory, trackSelector, loadControl);
+ }
+
+ /**
+ * @deprecated Use {@link SimpleExoPlayer.Builder} instead. The {@link DrmSessionManager} cannot
+ * be passed to {@link SimpleExoPlayer.Builder} and should instead be injected into the {@link
+ * MediaSource} factories.
+ */
+ @Deprecated
+ @SuppressWarnings("deprecation")
+ public static SimpleExoPlayer newSimpleInstance(
+ Context context,
+ TrackSelector trackSelector,
+ LoadControl loadControl,
+ @Nullable DrmSessionManager<FrameworkMediaCrypto> drmSessionManager) {
+ RenderersFactory renderersFactory = new DefaultRenderersFactory(context);
+ return newSimpleInstance(
+ context, renderersFactory, trackSelector, loadControl, drmSessionManager);
+ }
+
+ /**
+ * @deprecated Use {@link SimpleExoPlayer.Builder} instead. The {@link DrmSessionManager} cannot
+ * be passed to {@link SimpleExoPlayer.Builder} and should instead be injected into the {@link
+ * MediaSource} factories.
+ */
+ @Deprecated
+ @SuppressWarnings("deprecation")
+ public static SimpleExoPlayer newSimpleInstance(
+ Context context,
+ RenderersFactory renderersFactory,
+ TrackSelector trackSelector,
+ @Nullable DrmSessionManager<FrameworkMediaCrypto> drmSessionManager) {
+ return newSimpleInstance(
+ context, renderersFactory, trackSelector, new DefaultLoadControl(), drmSessionManager);
+ }
+
+ /** @deprecated Use {@link SimpleExoPlayer.Builder} instead. */
+ @Deprecated
+ @SuppressWarnings("deprecation")
+ public static SimpleExoPlayer newSimpleInstance(
+ Context context,
+ RenderersFactory renderersFactory,
+ TrackSelector trackSelector,
+ LoadControl loadControl) {
+ return newSimpleInstance(
+ context,
+ renderersFactory,
+ trackSelector,
+ loadControl,
+ /* drmSessionManager= */ null,
+ Util.getLooper());
+ }
+
+ /**
+ * @deprecated Use {@link SimpleExoPlayer.Builder} instead. The {@link DrmSessionManager} cannot
+ * be passed to {@link SimpleExoPlayer.Builder} and should instead be injected into the {@link
+ * MediaSource} factories.
+ */
+ @Deprecated
+ @SuppressWarnings("deprecation")
+ public static SimpleExoPlayer newSimpleInstance(
+ Context context,
+ RenderersFactory renderersFactory,
+ TrackSelector trackSelector,
+ LoadControl loadControl,
+ @Nullable DrmSessionManager<FrameworkMediaCrypto> drmSessionManager) {
+ return newSimpleInstance(
+ context, renderersFactory, trackSelector, loadControl, drmSessionManager, Util.getLooper());
+ }
+
+ /**
+ * @deprecated Use {@link SimpleExoPlayer.Builder} instead. The {@link DrmSessionManager} cannot
+ * be passed to {@link SimpleExoPlayer.Builder} and should instead be injected into the {@link
+ * MediaSource} factories.
+ */
+ @Deprecated
+ @SuppressWarnings("deprecation")
+ public static SimpleExoPlayer newSimpleInstance(
+ Context context,
+ RenderersFactory renderersFactory,
+ TrackSelector trackSelector,
+ LoadControl loadControl,
+ @Nullable DrmSessionManager<FrameworkMediaCrypto> drmSessionManager,
+ BandwidthMeter bandwidthMeter) {
+ return newSimpleInstance(
+ context,
+ renderersFactory,
+ trackSelector,
+ loadControl,
+ drmSessionManager,
+ bandwidthMeter,
+ new AnalyticsCollector(Clock.DEFAULT),
+ Util.getLooper());
+ }
+
+ /**
+ * @deprecated Use {@link SimpleExoPlayer.Builder} instead. The {@link DrmSessionManager} cannot
+ * be passed to {@link SimpleExoPlayer.Builder} and should instead be injected into the {@link
+ * MediaSource} factories.
+ */
+ @Deprecated
+ @SuppressWarnings("deprecation")
+ public static SimpleExoPlayer newSimpleInstance(
+ Context context,
+ RenderersFactory renderersFactory,
+ TrackSelector trackSelector,
+ LoadControl loadControl,
+ @Nullable DrmSessionManager<FrameworkMediaCrypto> drmSessionManager,
+ AnalyticsCollector analyticsCollector) {
+ return newSimpleInstance(
+ context,
+ renderersFactory,
+ trackSelector,
+ loadControl,
+ drmSessionManager,
+ analyticsCollector,
+ Util.getLooper());
+ }
+
+ /**
+ * @deprecated Use {@link SimpleExoPlayer.Builder} instead. The {@link DrmSessionManager} cannot
+ * be passed to {@link SimpleExoPlayer.Builder} and should instead be injected into the {@link
+ * MediaSource} factories.
+ */
+ @Deprecated
+ @SuppressWarnings("deprecation")
+ public static SimpleExoPlayer newSimpleInstance(
+ Context context,
+ RenderersFactory renderersFactory,
+ TrackSelector trackSelector,
+ LoadControl loadControl,
+ @Nullable DrmSessionManager<FrameworkMediaCrypto> drmSessionManager,
+ Looper looper) {
+ return newSimpleInstance(
+ context,
+ renderersFactory,
+ trackSelector,
+ loadControl,
+ drmSessionManager,
+ new AnalyticsCollector(Clock.DEFAULT),
+ looper);
+ }
+
+ /**
+ * @deprecated Use {@link SimpleExoPlayer.Builder} instead. The {@link DrmSessionManager} cannot
+ * be passed to {@link SimpleExoPlayer.Builder} and should instead be injected into the {@link
+ * MediaSource} factories.
+ */
+ @Deprecated
+ @SuppressWarnings("deprecation")
+ public static SimpleExoPlayer newSimpleInstance(
+ Context context,
+ RenderersFactory renderersFactory,
+ TrackSelector trackSelector,
+ LoadControl loadControl,
+ @Nullable DrmSessionManager<FrameworkMediaCrypto> drmSessionManager,
+ AnalyticsCollector analyticsCollector,
+ Looper looper) {
+ return newSimpleInstance(
+ context,
+ renderersFactory,
+ trackSelector,
+ loadControl,
+ drmSessionManager,
+ DefaultBandwidthMeter.getSingletonInstance(context),
+ analyticsCollector,
+ looper);
+ }
+
+ /**
+ * @deprecated Use {@link SimpleExoPlayer.Builder} instead. The {@link DrmSessionManager} cannot
+ * be passed to {@link SimpleExoPlayer.Builder} and should instead be injected into the {@link
+ * MediaSource} factories.
+ */
+ @SuppressWarnings("deprecation")
+ @Deprecated
+ public static SimpleExoPlayer newSimpleInstance(
+ Context context,
+ RenderersFactory renderersFactory,
+ TrackSelector trackSelector,
+ LoadControl loadControl,
+ @Nullable DrmSessionManager<FrameworkMediaCrypto> drmSessionManager,
+ BandwidthMeter bandwidthMeter,
+ AnalyticsCollector analyticsCollector,
+ Looper looper) {
+ return new SimpleExoPlayer(
+ context,
+ renderersFactory,
+ trackSelector,
+ loadControl,
+ drmSessionManager,
+ bandwidthMeter,
+ analyticsCollector,
+ Clock.DEFAULT,
+ looper);
+ }
+
+ /** @deprecated Use {@link ExoPlayer.Builder} instead. */
+ @Deprecated
+ @SuppressWarnings("deprecation")
+ public static ExoPlayer newInstance(
+ Context context, Renderer[] renderers, TrackSelector trackSelector) {
+ return newInstance(context, renderers, trackSelector, new DefaultLoadControl());
+ }
+
+ /** @deprecated Use {@link ExoPlayer.Builder} instead. */
+ @Deprecated
+ @SuppressWarnings("deprecation")
+ public static ExoPlayer newInstance(
+ Context context, Renderer[] renderers, TrackSelector trackSelector, LoadControl loadControl) {
+ return newInstance(context, renderers, trackSelector, loadControl, Util.getLooper());
+ }
+
+ /** @deprecated Use {@link ExoPlayer.Builder} instead. */
+ @Deprecated
+ @SuppressWarnings("deprecation")
+ public static ExoPlayer newInstance(
+ Context context,
+ Renderer[] renderers,
+ TrackSelector trackSelector,
+ LoadControl loadControl,
+ Looper looper) {
+ return newInstance(
+ context,
+ renderers,
+ trackSelector,
+ loadControl,
+ DefaultBandwidthMeter.getSingletonInstance(context),
+ looper);
+ }
+
+ /** @deprecated Use {@link ExoPlayer.Builder} instead. */
+ @Deprecated
+ public static ExoPlayer newInstance(
+ Context context,
+ Renderer[] renderers,
+ TrackSelector trackSelector,
+ LoadControl loadControl,
+ BandwidthMeter bandwidthMeter,
+ Looper looper) {
+ return new ExoPlayerImpl(
+ renderers, trackSelector, loadControl, bandwidthMeter, Clock.DEFAULT, looper);
+ }
+}