mirror of
https://github.com/androidx/media.git
synced 2025-05-07 23:50:44 +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.
|
* <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 =
|
public static final Parameters DEFAULT_TRACK_SELECTOR_PARAMETERS_WITHOUT_CONTEXT =
|
||||||
Parameters.DEFAULT_WITHOUT_CONTEXT.buildUpon().setForceHighestSupportedBitrate(true).build();
|
Parameters.DEFAULT_WITHOUT_CONTEXT.buildUpon().setForceHighestSupportedBitrate(true).build();
|
||||||
|
@ -43,6 +43,7 @@ import java.util.HashSet;
|
|||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
import java.util.concurrent.atomic.AtomicReference;
|
import java.util.concurrent.atomic.AtomicReference;
|
||||||
|
import org.checkerframework.checker.initialization.qual.UnderInitialization;
|
||||||
import org.checkerframework.checker.nullness.compatqual.NullableType;
|
import org.checkerframework.checker.nullness.compatqual.NullableType;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -191,8 +192,12 @@ public class DefaultTrackSelector extends MappingTrackSelector {
|
|||||||
* #ParametersBuilder(Context)} instead.
|
* #ParametersBuilder(Context)} instead.
|
||||||
*/
|
*/
|
||||||
@Deprecated
|
@Deprecated
|
||||||
|
@SuppressWarnings({"deprecation"})
|
||||||
public ParametersBuilder() {
|
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.
|
* @param context Any context.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
public ParametersBuilder(Context 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);
|
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(
|
private static SparseArray<Map<TrackGroupArray, SelectionOverride>> cloneSelectionOverrides(
|
||||||
SparseArray<Map<TrackGroupArray, SelectionOverride>> selectionOverrides) {
|
SparseArray<Map<TrackGroupArray, SelectionOverride>> selectionOverrides) {
|
||||||
SparseArray<Map<TrackGroupArray, SelectionOverride>> clone = new SparseArray<>();
|
SparseArray<Map<TrackGroupArray, SelectionOverride>> clone = new SparseArray<>();
|
||||||
@ -771,7 +807,8 @@ public class DefaultTrackSelector extends MappingTrackSelector {
|
|||||||
* {@link android.view.accessibility.CaptioningManager}.
|
* {@link android.view.accessibility.CaptioningManager}.
|
||||||
* </ul>
|
* </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
|
* @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
|
* @deprecated This instance does not have {@link Context} constraints configured. Use {@link
|
||||||
* #getDefaults(Context)} instead.
|
* #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. */
|
/** Returns an instance configured with default values. */
|
||||||
public static Parameters getDefaults(Context context) {
|
public static Parameters getDefaults(Context context) {
|
||||||
return DEFAULT_WITHOUT_CONTEXT
|
return new ParametersBuilder(context).build();
|
||||||
.buildUpon()
|
|
||||||
.setViewportSizeToPhysicalDisplaySize(context, /* viewportOrientationMayChange= */ true)
|
|
||||||
.setPreferredTextLanguageAndRoleFlagsToCaptioningManagerSettings(context)
|
|
||||||
.build();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// Video
|
// Video
|
||||||
@ -931,41 +966,6 @@ public class DefaultTrackSelector extends MappingTrackSelector {
|
|||||||
private final SparseArray<Map<TrackGroupArray, SelectionOverride>> selectionOverrides;
|
private final SparseArray<Map<TrackGroupArray, SelectionOverride>> selectionOverrides;
|
||||||
private final SparseBooleanArray rendererDisabledFlags;
|
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(
|
/* package */ Parameters(
|
||||||
// Video
|
// Video
|
||||||
int maxVideoWidth,
|
int maxVideoWidth,
|
||||||
@ -1458,6 +1458,7 @@ public class DefaultTrackSelector extends MappingTrackSelector {
|
|||||||
|
|
||||||
/** @deprecated Use {@link #DefaultTrackSelector(Context, TrackSelection.Factory)}. */
|
/** @deprecated Use {@link #DefaultTrackSelector(Context, TrackSelection.Factory)}. */
|
||||||
@Deprecated
|
@Deprecated
|
||||||
|
@SuppressWarnings("deprecation")
|
||||||
public DefaultTrackSelector(TrackSelection.Factory trackSelectionFactory) {
|
public DefaultTrackSelector(TrackSelection.Factory trackSelectionFactory) {
|
||||||
this(Parameters.DEFAULT_WITHOUT_CONTEXT, trackSelectionFactory);
|
this(Parameters.DEFAULT_WITHOUT_CONTEXT, trackSelectionFactory);
|
||||||
}
|
}
|
||||||
|
@ -46,8 +46,10 @@ public class TrackSelectionParameters implements Parcelable {
|
|||||||
*
|
*
|
||||||
* @param context Any context.
|
* @param context Any context.
|
||||||
*/
|
*/
|
||||||
|
@SuppressWarnings({"deprecation", "initialization:method.invocation.invalid"})
|
||||||
public Builder(Context context) {
|
public Builder(Context context) {
|
||||||
this(TrackSelectionParameters.getDefaults(context));
|
this();
|
||||||
|
setPreferredTextLanguageAndRoleFlagsToCaptioningManagerSettings(context);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -56,7 +58,11 @@ public class TrackSelectionParameters implements Parcelable {
|
|||||||
*/
|
*/
|
||||||
@Deprecated
|
@Deprecated
|
||||||
public Builder() {
|
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}.
|
* {@link CaptioningManager}.
|
||||||
* </ul>
|
* </ul>
|
||||||
*/
|
*/
|
||||||
public static final TrackSelectionParameters DEFAULT_WITHOUT_CONTEXT =
|
@SuppressWarnings("deprecation")
|
||||||
new TrackSelectionParameters();
|
public static final TrackSelectionParameters DEFAULT_WITHOUT_CONTEXT = new Builder().build();
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @deprecated This instance is not configured using {@link Context} constraints. Use {@link
|
* @deprecated This instance is not configured using {@link Context} constraints. Use {@link
|
||||||
* #getDefaults(Context)} instead.
|
* #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. */
|
/** Returns an instance configured with default values. */
|
||||||
public static TrackSelectionParameters getDefaults(Context context) {
|
public static TrackSelectionParameters getDefaults(Context context) {
|
||||||
return DEFAULT_WITHOUT_CONTEXT
|
return new Builder(context).build();
|
||||||
.buildUpon()
|
|
||||||
.setPreferredTextLanguageAndRoleFlagsToCaptioningManagerSettings(context)
|
|
||||||
.build();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -239,16 +242,6 @@ public class TrackSelectionParameters implements Parcelable {
|
|||||||
*/
|
*/
|
||||||
@C.SelectionFlags public final int disabledTextTrackSelectionFlags;
|
@C.SelectionFlags public final int disabledTextTrackSelectionFlags;
|
||||||
|
|
||||||
/* package */ TrackSelectionParameters() {
|
|
||||||
this(
|
|
||||||
/* preferredAudioLanguage= */ null,
|
|
||||||
// Text
|
|
||||||
/* preferredTextLanguage= */ null,
|
|
||||||
/* preferredTextRoleFlags= */ 0,
|
|
||||||
/* selectUndeterminedTextLanguage= */ false,
|
|
||||||
/* disabledTextTrackSelectionFlags= */ 0);
|
|
||||||
}
|
|
||||||
|
|
||||||
/* package */ TrackSelectionParameters(
|
/* package */ TrackSelectionParameters(
|
||||||
@Nullable String preferredAudioLanguage,
|
@Nullable String preferredAudioLanguage,
|
||||||
@Nullable String preferredTextLanguage,
|
@Nullable String preferredTextLanguage,
|
||||||
|
Loading…
x
Reference in New Issue
Block a user