mirror of
https://github.com/androidx/media.git
synced 2025-05-07 07:30:22 +08:00
Restructure setup of default values in track selection parameter builders.
PiperOrigin-RevId: 270250456
This commit is contained in:
parent
6cd530520d
commit
0cc0444af8
@ -89,7 +89,7 @@ public final class DownloadHelper {
|
||||
*
|
||||
* <p>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();
|
||||
|
@ -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<Map<TrackGroupArray, SelectionOverride>> cloneSelectionOverrides(
|
||||
SparseArray<Map<TrackGroupArray, SelectionOverride>> selectionOverrides) {
|
||||
SparseArray<Map<TrackGroupArray, SelectionOverride>> clone = new SparseArray<>();
|
||||
@ -771,7 +807,8 @@ public class DefaultTrackSelector extends MappingTrackSelector {
|
||||
* {@link android.view.accessibility.CaptioningManager}.
|
||||
* </ul>
|
||||
*/
|
||||
public static final Parameters DEFAULT_WITHOUT_CONTEXT = new Parameters();
|
||||
@SuppressWarnings("deprecation")
|
||||
public static final Parameters DEFAULT_WITHOUT_CONTEXT = new ParametersBuilder().build();
|
||||
|
||||
/**
|
||||
* @deprecated This instance does not have {@link Context} constraints configured. Use {@link
|
||||
@ -783,15 +820,13 @@ public class DefaultTrackSelector extends MappingTrackSelector {
|
||||
* @deprecated This instance does not have {@link Context} constraints configured. Use {@link
|
||||
* #getDefaults(Context)} instead.
|
||||
*/
|
||||
@Deprecated public static final Parameters DEFAULT = DEFAULT_WITHOUT_CONTEXT;
|
||||
@SuppressWarnings("deprecation")
|
||||
@Deprecated
|
||||
public static final Parameters DEFAULT = DEFAULT_WITHOUT_CONTEXT;
|
||||
|
||||
/** Returns an instance configured with default values. */
|
||||
public static Parameters getDefaults(Context context) {
|
||||
return DEFAULT_WITHOUT_CONTEXT
|
||||
.buildUpon()
|
||||
.setViewportSizeToPhysicalDisplaySize(context, /* viewportOrientationMayChange= */ true)
|
||||
.setPreferredTextLanguageAndRoleFlagsToCaptioningManagerSettings(context)
|
||||
.build();
|
||||
return new ParametersBuilder(context).build();
|
||||
}
|
||||
|
||||
// Video
|
||||
@ -931,41 +966,6 @@ public class DefaultTrackSelector extends MappingTrackSelector {
|
||||
private final SparseArray<Map<TrackGroupArray, SelectionOverride>> selectionOverrides;
|
||||
private final SparseBooleanArray rendererDisabledFlags;
|
||||
|
||||
private Parameters() {
|
||||
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
|
||||
TrackSelectionParameters.DEFAULT_WITHOUT_CONTEXT.preferredAudioLanguage,
|
||||
/* maxAudioChannelCount= */ Integer.MAX_VALUE,
|
||||
/* maxAudioBitrate= */ Integer.MAX_VALUE,
|
||||
/* exceedAudioConstraintsIfNecessary= */ true,
|
||||
/* allowAudioMixedMimeTypeAdaptiveness= */ false,
|
||||
/* allowAudioMixedSampleRateAdaptiveness= */ false,
|
||||
/* allowAudioMixedChannelCountAdaptiveness= */ false,
|
||||
// Text
|
||||
TrackSelectionParameters.DEFAULT_WITHOUT_CONTEXT.preferredTextLanguage,
|
||||
TrackSelectionParameters.DEFAULT_WITHOUT_CONTEXT.preferredTextRoleFlags,
|
||||
TrackSelectionParameters.DEFAULT_WITHOUT_CONTEXT.selectUndeterminedTextLanguage,
|
||||
TrackSelectionParameters.DEFAULT_WITHOUT_CONTEXT.disabledTextTrackSelectionFlags,
|
||||
// General
|
||||
/* forceLowestBitrate= */ false,
|
||||
/* forceHighestSupportedBitrate= */ false,
|
||||
/* exceedRendererCapabilitiesIfNecessary= */ true,
|
||||
/* tunnelingAudioSessionId= */ C.AUDIO_SESSION_ID_UNSET,
|
||||
new SparseArray<>(),
|
||||
new SparseBooleanArray());
|
||||
}
|
||||
|
||||
/* package */ Parameters(
|
||||
// Video
|
||||
int maxVideoWidth,
|
||||
@ -1458,6 +1458,7 @@ public class DefaultTrackSelector extends MappingTrackSelector {
|
||||
|
||||
/** @deprecated Use {@link #DefaultTrackSelector(Context, TrackSelection.Factory)}. */
|
||||
@Deprecated
|
||||
@SuppressWarnings("deprecation")
|
||||
public DefaultTrackSelector(TrackSelection.Factory trackSelectionFactory) {
|
||||
this(Parameters.DEFAULT_WITHOUT_CONTEXT, trackSelectionFactory);
|
||||
}
|
||||
|
@ -46,8 +46,10 @@ public class TrackSelectionParameters implements Parcelable {
|
||||
*
|
||||
* @param context Any context.
|
||||
*/
|
||||
@SuppressWarnings({"deprecation", "initialization:method.invocation.invalid"})
|
||||
public Builder(Context context) {
|
||||
this(TrackSelectionParameters.getDefaults(context));
|
||||
this();
|
||||
setPreferredTextLanguageAndRoleFlagsToCaptioningManagerSettings(context);
|
||||
}
|
||||
|
||||
/**
|
||||
@ -56,7 +58,11 @@ public class TrackSelectionParameters implements Parcelable {
|
||||
*/
|
||||
@Deprecated
|
||||
public Builder() {
|
||||
this(DEFAULT_WITHOUT_CONTEXT);
|
||||
preferredAudioLanguage = null;
|
||||
preferredTextLanguage = null;
|
||||
preferredTextRoleFlags = 0;
|
||||
selectUndeterminedTextLanguage = false;
|
||||
disabledTextTrackSelectionFlags = 0;
|
||||
}
|
||||
|
||||
/**
|
||||
@ -191,21 +197,18 @@ public class TrackSelectionParameters implements Parcelable {
|
||||
* {@link CaptioningManager}.
|
||||
* </ul>
|
||||
*/
|
||||
public static final TrackSelectionParameters DEFAULT_WITHOUT_CONTEXT =
|
||||
new TrackSelectionParameters();
|
||||
@SuppressWarnings("deprecation")
|
||||
public static final TrackSelectionParameters DEFAULT_WITHOUT_CONTEXT = new Builder().build();
|
||||
|
||||
/**
|
||||
* @deprecated This instance is not configured using {@link Context} constraints. Use {@link
|
||||
* #getDefaults(Context)} instead.
|
||||
*/
|
||||
@Deprecated public static final TrackSelectionParameters DEFAULT = new TrackSelectionParameters();
|
||||
@Deprecated public static final TrackSelectionParameters DEFAULT = DEFAULT_WITHOUT_CONTEXT;
|
||||
|
||||
/** Returns an instance configured with default values. */
|
||||
public static TrackSelectionParameters getDefaults(Context context) {
|
||||
return DEFAULT_WITHOUT_CONTEXT
|
||||
.buildUpon()
|
||||
.setPreferredTextLanguageAndRoleFlagsToCaptioningManagerSettings(context)
|
||||
.build();
|
||||
return new Builder(context).build();
|
||||
}
|
||||
|
||||
/**
|
||||
@ -239,16 +242,6 @@ public class TrackSelectionParameters implements Parcelable {
|
||||
*/
|
||||
@C.SelectionFlags public final int disabledTextTrackSelectionFlags;
|
||||
|
||||
/* package */ TrackSelectionParameters() {
|
||||
this(
|
||||
/* preferredAudioLanguage= */ null,
|
||||
// Text
|
||||
/* preferredTextLanguage= */ null,
|
||||
/* preferredTextRoleFlags= */ 0,
|
||||
/* selectUndeterminedTextLanguage= */ false,
|
||||
/* disabledTextTrackSelectionFlags= */ 0);
|
||||
}
|
||||
|
||||
/* package */ TrackSelectionParameters(
|
||||
@Nullable String preferredAudioLanguage,
|
||||
@Nullable String preferredTextLanguage,
|
||||
|
Loading…
x
Reference in New Issue
Block a user