mirror of
https://github.com/androidx/media.git
synced 2025-05-07 23:50:44 +08:00
Don't select trick-play tracks by default
Issue: #6054 Issue: #474 PiperOrigin-RevId: 306504362
This commit is contained in:
parent
d538d6ae37
commit
bdc0db30fd
@ -1056,7 +1056,8 @@ public final class C {
|
|||||||
* #ROLE_FLAG_DUB}, {@link #ROLE_FLAG_EMERGENCY}, {@link #ROLE_FLAG_CAPTION}, {@link
|
* #ROLE_FLAG_DUB}, {@link #ROLE_FLAG_EMERGENCY}, {@link #ROLE_FLAG_CAPTION}, {@link
|
||||||
* #ROLE_FLAG_SUBTITLE}, {@link #ROLE_FLAG_SIGN}, {@link #ROLE_FLAG_DESCRIBES_VIDEO}, {@link
|
* #ROLE_FLAG_SUBTITLE}, {@link #ROLE_FLAG_SIGN}, {@link #ROLE_FLAG_DESCRIBES_VIDEO}, {@link
|
||||||
* #ROLE_FLAG_DESCRIBES_MUSIC_AND_SOUND}, {@link #ROLE_FLAG_ENHANCED_DIALOG_INTELLIGIBILITY},
|
* #ROLE_FLAG_DESCRIBES_MUSIC_AND_SOUND}, {@link #ROLE_FLAG_ENHANCED_DIALOG_INTELLIGIBILITY},
|
||||||
* {@link #ROLE_FLAG_TRANSCRIBES_DIALOG} and {@link #ROLE_FLAG_EASY_TO_READ}.
|
* {@link #ROLE_FLAG_TRANSCRIBES_DIALOG}, {@link #ROLE_FLAG_EASY_TO_READ} and {@link
|
||||||
|
* #ROLE_FLAG_TRICK_PLAY}.
|
||||||
*/
|
*/
|
||||||
@Documented
|
@Documented
|
||||||
@Retention(RetentionPolicy.SOURCE)
|
@Retention(RetentionPolicy.SOURCE)
|
||||||
@ -1076,7 +1077,8 @@ public final class C {
|
|||||||
ROLE_FLAG_DESCRIBES_MUSIC_AND_SOUND,
|
ROLE_FLAG_DESCRIBES_MUSIC_AND_SOUND,
|
||||||
ROLE_FLAG_ENHANCED_DIALOG_INTELLIGIBILITY,
|
ROLE_FLAG_ENHANCED_DIALOG_INTELLIGIBILITY,
|
||||||
ROLE_FLAG_TRANSCRIBES_DIALOG,
|
ROLE_FLAG_TRANSCRIBES_DIALOG,
|
||||||
ROLE_FLAG_EASY_TO_READ
|
ROLE_FLAG_EASY_TO_READ,
|
||||||
|
ROLE_FLAG_TRICK_PLAY
|
||||||
})
|
})
|
||||||
public @interface RoleFlags {}
|
public @interface RoleFlags {}
|
||||||
/** Indicates a main track. */
|
/** Indicates a main track. */
|
||||||
@ -1122,6 +1124,8 @@ public final class C {
|
|||||||
public static final int ROLE_FLAG_TRANSCRIBES_DIALOG = 1 << 12;
|
public static final int ROLE_FLAG_TRANSCRIBES_DIALOG = 1 << 12;
|
||||||
/** Indicates the track contains a text that has been edited for ease of reading. */
|
/** Indicates the track contains a text that has been edited for ease of reading. */
|
||||||
public static final int ROLE_FLAG_EASY_TO_READ = 1 << 13;
|
public static final int ROLE_FLAG_EASY_TO_READ = 1 << 13;
|
||||||
|
/** Indicates the track is intended for trick play. */
|
||||||
|
public static final int ROLE_FLAG_TRICK_PLAY = 1 << 14;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Converts a time in microseconds to the corresponding time in milliseconds, preserving
|
* Converts a time in microseconds to the corresponding time in milliseconds, preserving
|
||||||
|
@ -1990,6 +1990,10 @@ public class DefaultTrackSelector extends MappingTrackSelector {
|
|||||||
int maxVideoHeight,
|
int maxVideoHeight,
|
||||||
int maxVideoFrameRate,
|
int maxVideoFrameRate,
|
||||||
int maxVideoBitrate) {
|
int maxVideoBitrate) {
|
||||||
|
if ((format.roleFlags & C.ROLE_FLAG_TRICK_PLAY) != 0) {
|
||||||
|
// Ignore trick-play tracks for now.
|
||||||
|
return false;
|
||||||
|
}
|
||||||
return isSupported(formatSupport, false)
|
return isSupported(formatSupport, false)
|
||||||
&& ((formatSupport & requiredAdaptiveSupport) != 0)
|
&& ((formatSupport & requiredAdaptiveSupport) != 0)
|
||||||
&& (mimeType == null || Util.areEqual(format.sampleMimeType, mimeType))
|
&& (mimeType == null || Util.areEqual(format.sampleMimeType, mimeType))
|
||||||
@ -2013,9 +2017,13 @@ public class DefaultTrackSelector extends MappingTrackSelector {
|
|||||||
params.viewportWidth, params.viewportHeight, params.viewportOrientationMayChange);
|
params.viewportWidth, params.viewportHeight, params.viewportOrientationMayChange);
|
||||||
@Capabilities int[] trackFormatSupport = formatSupports[groupIndex];
|
@Capabilities int[] trackFormatSupport = formatSupports[groupIndex];
|
||||||
for (int trackIndex = 0; trackIndex < trackGroup.length; trackIndex++) {
|
for (int trackIndex = 0; trackIndex < trackGroup.length; trackIndex++) {
|
||||||
|
Format format = trackGroup.getFormat(trackIndex);
|
||||||
|
if ((format.roleFlags & C.ROLE_FLAG_TRICK_PLAY) != 0) {
|
||||||
|
// Ignore trick-play tracks for now.
|
||||||
|
continue;
|
||||||
|
}
|
||||||
if (isSupported(trackFormatSupport[trackIndex],
|
if (isSupported(trackFormatSupport[trackIndex],
|
||||||
params.exceedRendererCapabilitiesIfNecessary)) {
|
params.exceedRendererCapabilitiesIfNecessary)) {
|
||||||
Format format = trackGroup.getFormat(trackIndex);
|
|
||||||
boolean isWithinConstraints =
|
boolean isWithinConstraints =
|
||||||
selectedTrackIndices.contains(trackIndex)
|
selectedTrackIndices.contains(trackIndex)
|
||||||
&& (format.width == Format.NO_VALUE || format.width <= params.maxVideoWidth)
|
&& (format.width == Format.NO_VALUE || format.width <= params.maxVideoWidth)
|
||||||
|
Loading…
x
Reference in New Issue
Block a user