Commit 695347c2 by olly Committed by Oliver Woodman

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
parent 3a448f3a
...@@ -436,35 +436,48 @@ public class DefaultTrackSelector extends MappingTrackSelector { ...@@ -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(),
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or sign in to comment