mirror of
https://github.com/samsonjs/media.git
synced 2026-04-27 15:07:40 +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;
|
int rendererCount = rendererCapabilities.length;
|
||||||
TrackSelection[] rendererTrackSelections = new TrackSelection[rendererCount];
|
TrackSelection[] rendererTrackSelections = new TrackSelection[rendererCount];
|
||||||
Parameters params = paramsReference.get();
|
Parameters params = paramsReference.get();
|
||||||
boolean videoTrackAndRendererPresent = false;
|
|
||||||
|
|
||||||
|
boolean seenVideoRendererWithMappedTracks = false;
|
||||||
|
boolean selectedVideoTracks = false;
|
||||||
for (int i = 0; i < rendererCount; i++) {
|
for (int i = 0; i < rendererCount; i++) {
|
||||||
if (C.TRACK_TYPE_VIDEO == rendererCapabilities[i].getTrackType()) {
|
if (C.TRACK_TYPE_VIDEO == rendererCapabilities[i].getTrackType()) {
|
||||||
rendererTrackSelections[i] = selectVideoTrack(rendererCapabilities[i],
|
if (!selectedVideoTracks) {
|
||||||
rendererTrackGroupArrays[i], rendererFormatSupports[i], params.maxVideoWidth,
|
rendererTrackSelections[i] = selectVideoTrack(rendererCapabilities[i],
|
||||||
params.maxVideoHeight, params.maxVideoBitrate, params.allowNonSeamlessAdaptiveness,
|
rendererTrackGroupArrays[i], rendererFormatSupports[i], params.maxVideoWidth,
|
||||||
params.allowMixedMimeAdaptiveness, params.viewportWidth, params.viewportHeight,
|
params.maxVideoHeight, params.maxVideoBitrate, params.allowNonSeamlessAdaptiveness,
|
||||||
params.orientationMayChange, adaptiveTrackSelectionFactory,
|
params.allowMixedMimeAdaptiveness, params.viewportWidth, params.viewportHeight,
|
||||||
params.exceedVideoConstraintsIfNecessary, params.exceedRendererCapabilitiesIfNecessary);
|
params.orientationMayChange, adaptiveTrackSelectionFactory,
|
||||||
videoTrackAndRendererPresent |= rendererTrackGroupArrays[i].length > 0;
|
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++) {
|
for (int i = 0; i < rendererCount; i++) {
|
||||||
switch (rendererCapabilities[i].getTrackType()) {
|
switch (rendererCapabilities[i].getTrackType()) {
|
||||||
case C.TRACK_TYPE_VIDEO:
|
case C.TRACK_TYPE_VIDEO:
|
||||||
// Already done. Do nothing.
|
// Already done. Do nothing.
|
||||||
break;
|
break;
|
||||||
case C.TRACK_TYPE_AUDIO:
|
case C.TRACK_TYPE_AUDIO:
|
||||||
rendererTrackSelections[i] = selectAudioTrack(rendererTrackGroupArrays[i],
|
if (!selectedAudioTracks) {
|
||||||
rendererFormatSupports[i], params.preferredAudioLanguage,
|
rendererTrackSelections[i] = selectAudioTrack(rendererTrackGroupArrays[i],
|
||||||
params.exceedRendererCapabilitiesIfNecessary, params.allowMixedMimeAdaptiveness,
|
rendererFormatSupports[i], params.preferredAudioLanguage,
|
||||||
videoTrackAndRendererPresent ? null : adaptiveTrackSelectionFactory);
|
params.exceedRendererCapabilitiesIfNecessary, params.allowMixedMimeAdaptiveness,
|
||||||
|
seenVideoRendererWithMappedTracks ? null : adaptiveTrackSelectionFactory);
|
||||||
|
selectedAudioTracks = rendererTrackSelections[i] != null;
|
||||||
|
}
|
||||||
break;
|
break;
|
||||||
case C.TRACK_TYPE_TEXT:
|
case C.TRACK_TYPE_TEXT:
|
||||||
rendererTrackSelections[i] = selectTextTrack(rendererTrackGroupArrays[i],
|
if (!selectedTextTracks) {
|
||||||
rendererFormatSupports[i], params.preferredTextLanguage,
|
rendererTrackSelections[i] = selectTextTrack(rendererTrackGroupArrays[i],
|
||||||
params.preferredAudioLanguage, params.exceedRendererCapabilitiesIfNecessary);
|
rendererFormatSupports[i], params.preferredTextLanguage,
|
||||||
|
params.preferredAudioLanguage, params.exceedRendererCapabilitiesIfNecessary);
|
||||||
|
selectedTextTracks = rendererTrackSelections[i] != null;
|
||||||
|
}
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
rendererTrackSelections[i] = selectOtherTrack(rendererCapabilities[i].getTrackType(),
|
rendererTrackSelections[i] = selectOtherTrack(rendererCapabilities[i].getTrackType(),
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue