diff --git a/library/core/src/main/java/com/google/android/exoplayer2/offline/DownloadHelper.java b/library/core/src/main/java/com/google/android/exoplayer2/offline/DownloadHelper.java
index aad2b45eab..57ef5731fb 100644
--- a/library/core/src/main/java/com/google/android/exoplayer2/offline/DownloadHelper.java
+++ b/library/core/src/main/java/com/google/android/exoplayer2/offline/DownloadHelper.java
@@ -89,7 +89,7 @@ public final class DownloadHelper {
*
*
If possible, use {@link #getDefaultTrackSelectorParameters(Context)} instead.
*
- * @see DefaultTrackSelector.Parameters#DEFAULT_WITHOUT_CONTEXT
+ * @see Parameters#DEFAULT_WITHOUT_CONTEXT
*/
public static final Parameters DEFAULT_TRACK_SELECTOR_PARAMETERS_WITHOUT_CONTEXT =
Parameters.DEFAULT_WITHOUT_CONTEXT.buildUpon().setForceHighestSupportedBitrate(true).build();
diff --git a/library/core/src/main/java/com/google/android/exoplayer2/trackselection/DefaultTrackSelector.java b/library/core/src/main/java/com/google/android/exoplayer2/trackselection/DefaultTrackSelector.java
index ad606d78dd..c36f23c472 100644
--- a/library/core/src/main/java/com/google/android/exoplayer2/trackselection/DefaultTrackSelector.java
+++ b/library/core/src/main/java/com/google/android/exoplayer2/trackselection/DefaultTrackSelector.java
@@ -43,6 +43,7 @@ import java.util.HashSet;
import java.util.List;
import java.util.Map;
import java.util.concurrent.atomic.AtomicReference;
+import org.checkerframework.checker.initialization.qual.UnderInitialization;
import org.checkerframework.checker.nullness.compatqual.NullableType;
/**
@@ -191,8 +192,12 @@ public class DefaultTrackSelector extends MappingTrackSelector {
* #ParametersBuilder(Context)} instead.
*/
@Deprecated
+ @SuppressWarnings({"deprecation"})
public ParametersBuilder() {
- this(Parameters.DEFAULT_WITHOUT_CONTEXT);
+ super();
+ setInitialValuesWithoutContext();
+ selectionOverrides = new SparseArray<>();
+ rendererDisabledFlags = new SparseBooleanArray();
}
/**
@@ -200,8 +205,13 @@ public class DefaultTrackSelector extends MappingTrackSelector {
*
* @param context Any context.
*/
+
public ParametersBuilder(Context context) {
- this(Parameters.getDefaults(context));
+ super(context);
+ setInitialValuesWithoutContext();
+ selectionOverrides = new SparseArray<>();
+ rendererDisabledFlags = new SparseBooleanArray();
+ setViewportSizeToPhysicalDisplaySize(context, /* viewportOrientationMayChange= */ true);
}
/**
@@ -739,6 +749,32 @@ public class DefaultTrackSelector extends MappingTrackSelector {
rendererDisabledFlags);
}
+ private void setInitialValuesWithoutContext(@UnderInitialization ParametersBuilder this) {
+ // Video
+ maxVideoWidth = Integer.MAX_VALUE;
+ maxVideoHeight = Integer.MAX_VALUE;
+ maxVideoFrameRate = Integer.MAX_VALUE;
+ maxVideoBitrate = Integer.MAX_VALUE;
+ exceedVideoConstraintsIfNecessary = true;
+ allowVideoMixedMimeTypeAdaptiveness = false;
+ allowVideoNonSeamlessAdaptiveness = true;
+ viewportWidth = Integer.MAX_VALUE;
+ viewportHeight = Integer.MAX_VALUE;
+ viewportOrientationMayChange = true;
+ // Audio
+ maxAudioChannelCount = Integer.MAX_VALUE;
+ maxAudioBitrate = Integer.MAX_VALUE;
+ exceedAudioConstraintsIfNecessary = true;
+ allowAudioMixedMimeTypeAdaptiveness = false;
+ allowAudioMixedSampleRateAdaptiveness = false;
+ allowAudioMixedChannelCountAdaptiveness = false;
+ // General
+ forceLowestBitrate = false;
+ forceHighestSupportedBitrate = false;
+ exceedRendererCapabilitiesIfNecessary = true;
+ tunnelingAudioSessionId = C.AUDIO_SESSION_ID_UNSET;
+ }
+
private static SparseArray