mirror of
https://github.com/samsonjs/media.git
synced 2026-03-28 09:55:48 +00:00
Don't select more than one audio/video/text track by default
Issue: #2618 ------------- Created by MOE: https://github.com/google/moe MOE_MIGRATED_REVID=156986606
This commit is contained in:
parent
3a448f3a0e
commit
695347c26b
1 changed files with 28 additions and 15 deletions
|
|
@ -436,35 +436,48 @@ public class DefaultTrackSelector extends MappingTrackSelector {
|
|||
int rendererCount = rendererCapabilities.length;
|
||||
TrackSelection[] rendererTrackSelections = new TrackSelection[rendererCount];
|
||||
Parameters params = paramsReference.get();
|
||||
boolean videoTrackAndRendererPresent = false;
|
||||
|
||||
boolean seenVideoRendererWithMappedTracks = false;
|
||||
boolean selectedVideoTracks = false;
|
||||
for (int i = 0; i < rendererCount; i++) {
|
||||
if (C.TRACK_TYPE_VIDEO == rendererCapabilities[i].getTrackType()) {
|
||||
rendererTrackSelections[i] = selectVideoTrack(rendererCapabilities[i],
|
||||
rendererTrackGroupArrays[i], rendererFormatSupports[i], params.maxVideoWidth,
|
||||
params.maxVideoHeight, params.maxVideoBitrate, params.allowNonSeamlessAdaptiveness,
|
||||
params.allowMixedMimeAdaptiveness, params.viewportWidth, params.viewportHeight,
|
||||
params.orientationMayChange, adaptiveTrackSelectionFactory,
|
||||
params.exceedVideoConstraintsIfNecessary, params.exceedRendererCapabilitiesIfNecessary);
|
||||
videoTrackAndRendererPresent |= rendererTrackGroupArrays[i].length > 0;
|
||||
if (!selectedVideoTracks) {
|
||||
rendererTrackSelections[i] = selectVideoTrack(rendererCapabilities[i],
|
||||
rendererTrackGroupArrays[i], rendererFormatSupports[i], params.maxVideoWidth,
|
||||
params.maxVideoHeight, params.maxVideoBitrate, params.allowNonSeamlessAdaptiveness,
|
||||
params.allowMixedMimeAdaptiveness, params.viewportWidth, params.viewportHeight,
|
||||
params.orientationMayChange, adaptiveTrackSelectionFactory,
|
||||
params.exceedVideoConstraintsIfNecessary,
|
||||
params.exceedRendererCapabilitiesIfNecessary);
|
||||
selectedVideoTracks = rendererTrackSelections[i] != null;
|
||||
}
|
||||
seenVideoRendererWithMappedTracks |= rendererTrackGroupArrays[i].length > 0;
|
||||
}
|
||||
}
|
||||
|
||||
boolean selectedAudioTracks = false;
|
||||
boolean selectedTextTracks = false;
|
||||
for (int i = 0; i < rendererCount; i++) {
|
||||
switch (rendererCapabilities[i].getTrackType()) {
|
||||
case C.TRACK_TYPE_VIDEO:
|
||||
// Already done. Do nothing.
|
||||
break;
|
||||
case C.TRACK_TYPE_AUDIO:
|
||||
rendererTrackSelections[i] = selectAudioTrack(rendererTrackGroupArrays[i],
|
||||
rendererFormatSupports[i], params.preferredAudioLanguage,
|
||||
params.exceedRendererCapabilitiesIfNecessary, params.allowMixedMimeAdaptiveness,
|
||||
videoTrackAndRendererPresent ? null : adaptiveTrackSelectionFactory);
|
||||
if (!selectedAudioTracks) {
|
||||
rendererTrackSelections[i] = selectAudioTrack(rendererTrackGroupArrays[i],
|
||||
rendererFormatSupports[i], params.preferredAudioLanguage,
|
||||
params.exceedRendererCapabilitiesIfNecessary, params.allowMixedMimeAdaptiveness,
|
||||
seenVideoRendererWithMappedTracks ? null : adaptiveTrackSelectionFactory);
|
||||
selectedAudioTracks = rendererTrackSelections[i] != null;
|
||||
}
|
||||
break;
|
||||
case C.TRACK_TYPE_TEXT:
|
||||
rendererTrackSelections[i] = selectTextTrack(rendererTrackGroupArrays[i],
|
||||
rendererFormatSupports[i], params.preferredTextLanguage,
|
||||
params.preferredAudioLanguage, params.exceedRendererCapabilitiesIfNecessary);
|
||||
if (!selectedTextTracks) {
|
||||
rendererTrackSelections[i] = selectTextTrack(rendererTrackGroupArrays[i],
|
||||
rendererFormatSupports[i], params.preferredTextLanguage,
|
||||
params.preferredAudioLanguage, params.exceedRendererCapabilitiesIfNecessary);
|
||||
selectedTextTracks = rendererTrackSelections[i] != null;
|
||||
}
|
||||
break;
|
||||
default:
|
||||
rendererTrackSelections[i] = selectOtherTrack(rendererCapabilities[i].getTrackType(),
|
||||
|
|
|
|||
Loading…
Reference in a new issue