Fix comments

This commit is contained in:
Corentin Zuber 2020-09-03 10:19:55 +02:00
parent 50582417cb
commit 7bfde6a5ea
5 changed files with 89 additions and 95 deletions

View file

@ -654,7 +654,7 @@ public final class DownloadHelper {
}
}
for (String language : languages) {
parametersBuilder.setPreferredAudioLanguage(language);
parametersBuilder.setPreferredAudioLanguages(language);
addTrackSelection(periodIndex, parametersBuilder.build());
}
}
@ -685,7 +685,7 @@ public final class DownloadHelper {
}
parametersBuilder.setSelectUndeterminedTextLanguage(selectUndeterminedTextLanguage);
for (String language : languages) {
parametersBuilder.setPreferredTextLanguage(language);
parametersBuilder.setPreferredTextLanguages(language);
addTrackSelection(periodIndex, parametersBuilder.build());
}
}

View file

@ -39,6 +39,7 @@ import com.google.android.exoplayer2.source.TrackGroupArray;
import com.google.android.exoplayer2.util.Assertions;
import com.google.android.exoplayer2.util.Util;
import com.google.common.collect.ComparisonChain;
import com.google.common.collect.ImmutableList;
import com.google.common.collect.Ordering;
import com.google.common.primitives.Ints;
import java.util.ArrayList;
@ -445,14 +446,8 @@ public class DefaultTrackSelector extends MappingTrackSelector {
// Audio
@Override
public ParametersBuilder setPreferredAudioLanguage(@Nullable String preferredAudioLanguage) {
super.setPreferredAudioLanguage(preferredAudioLanguage);
return this;
}
@Override
public ParametersBuilder setPreferredAudioLanguage(String[] preferredAudioLanguage) {
super.setPreferredAudioLanguage(preferredAudioLanguage);
public ParametersBuilder setPreferredAudioLanguages(@Nullable String... preferredAudioLanguages) {
super.setPreferredAudioLanguages(preferredAudioLanguages);
return this;
}
@ -547,8 +542,8 @@ public class DefaultTrackSelector extends MappingTrackSelector {
}
@Override
public ParametersBuilder setPreferredTextLanguage(@Nullable String preferredTextLanguage) {
super.setPreferredTextLanguage(preferredTextLanguage);
public ParametersBuilder setPreferredTextLanguages(@Nullable String... preferredTextLanguages) {
super.setPreferredTextLanguages(preferredTextLanguages);
return this;
}
@ -773,7 +768,7 @@ public class DefaultTrackSelector extends MappingTrackSelector {
viewportHeight,
viewportOrientationMayChange,
// Audio
preferredAudioLanguage,
preferredAudioLanguages,
maxAudioChannelCount,
maxAudioBitrate,
exceedAudioConstraintsIfNecessary,
@ -781,7 +776,7 @@ public class DefaultTrackSelector extends MappingTrackSelector {
allowAudioMixedSampleRateAdaptiveness,
allowAudioMixedChannelCountAdaptiveness,
// Text
preferredTextLanguage,
preferredTextLanguages,
preferredTextRoleFlags,
selectUndeterminedTextLanguage,
disabledTextTrackSelectionFlags,
@ -1021,7 +1016,7 @@ public class DefaultTrackSelector extends MappingTrackSelector {
int viewportHeight,
boolean viewportOrientationMayChange,
// Audio
String[] preferredAudioLanguage,
ImmutableList<String> preferredAudioLanguage,
int maxAudioChannelCount,
int maxAudioBitrate,
boolean exceedAudioConstraintsIfNecessary,
@ -1029,7 +1024,7 @@ public class DefaultTrackSelector extends MappingTrackSelector {
boolean allowAudioMixedSampleRateAdaptiveness,
boolean allowAudioMixedChannelCountAdaptiveness,
// Text
String[] preferredTextLanguage,
ImmutableList<String> preferredTextLanguage,
@C.RoleFlags int preferredTextRoleFlags,
boolean selectUndeterminedTextLanguage,
@C.SelectionFlags int disabledTextTrackSelectionFlags,
@ -2613,6 +2608,7 @@ public class DefaultTrackSelector extends MappingTrackSelector {
private final Parameters parameters;
private final boolean isWithinRendererCapabilities;
private final int preferredLanguageScore;
private final int preferredLanguageIndex;
private final int localeLanguageMatchIndex;
private final int localeLanguageScore;
private final boolean isDefaultSelectionFlag;
@ -2626,14 +2622,18 @@ public class DefaultTrackSelector extends MappingTrackSelector {
isWithinRendererCapabilities =
isSupported(formatSupport, /* allowExceedsCapabilities= */ false);
int bestLanguageScore = 0;
for (int i = 0; i < parameters.preferredAudioLanguage.length; i++) {
int bestLanguageIndex = 0;
for (int i = 0; i < parameters.preferredAudioLanguages.size(); i++) {
int score = getFormatLanguageScore(
format,
parameters.preferredAudioLanguage[i],
parameters.preferredAudioLanguages.get(i),
/* allowUndeterminedFormatLanguage= */ false);
score = 1000 * score + parameters.preferredAudioLanguage.length - i; // Priorise the first items in array
bestLanguageScore = Math.max(bestLanguageScore, score);
if (score > 0) {
bestLanguageIndex = i;
bestLanguageScore = score;
}
}
preferredLanguageIndex = bestLanguageIndex;
preferredLanguageScore = bestLanguageScore;
isDefaultSelectionFlag = (format.selectionFlags & C.SELECTION_FLAG_DEFAULT) != 0;
channelCount = format.channelCount;
@ -2677,6 +2677,10 @@ public class DefaultTrackSelector extends MappingTrackSelector {
: FORMAT_VALUE_ORDERING.reverse();
return ComparisonChain.start()
.compareFalseFirst(this.isWithinRendererCapabilities, other.isWithinRendererCapabilities)
.compare(
this.preferredLanguageIndex,
other.preferredLanguageIndex,
Ordering.natural().reverse())
.compare(this.preferredLanguageScore, other.preferredLanguageScore)
.compareFalseFirst(this.isWithinConstraints, other.isWithinConstraints)
.compare(
@ -2729,10 +2733,10 @@ public class DefaultTrackSelector extends MappingTrackSelector {
isDefault = (maskedSelectionFlags & C.SELECTION_FLAG_DEFAULT) != 0;
isForced = (maskedSelectionFlags & C.SELECTION_FLAG_FORCED) != 0;
int bestLanguageScore = 0;
for (int i = 0; i < parameters.preferredTextLanguage.length; i++) {
for (int i = 0; i < parameters.preferredTextLanguages.size(); i++) {
int score = getFormatLanguageScore(
format, parameters.preferredTextLanguage[i], parameters.selectUndeterminedTextLanguage);
score = 1000 * score + parameters.preferredTextLanguage.length - i; // Priorise the first items in array
format, parameters.preferredTextLanguages.get(i), parameters.selectUndeterminedTextLanguage);
score = 1000 * score + parameters.preferredTextLanguages.size() - i; // Priorise the first items in array
bestLanguageScore = Math.max(bestLanguageScore, score);
}
preferredLanguageScore = bestLanguageScore;
@ -2746,7 +2750,7 @@ public class DefaultTrackSelector extends MappingTrackSelector {
getFormatLanguageScore(format, selectedAudioLanguage, selectedAudioLanguageUndetermined);
isWithinConstraints =
preferredLanguageScore > 0
|| (parameters.preferredTextLanguage.length == 0 && preferredRoleFlagsScore > 0)
|| (parameters.preferredTextLanguages.size() == 0 && preferredRoleFlagsScore > 0)
|| isDefault
|| (isForced && selectedAudioLanguageScore > 0);
}

View file

@ -24,6 +24,8 @@ import androidx.annotation.Nullable;
import androidx.annotation.RequiresApi;
import com.google.android.exoplayer2.C;
import com.google.android.exoplayer2.util.Util;
import com.google.common.collect.ImmutableList;
import com.google.common.collect.Lists;
import java.util.Arrays;
import java.util.Locale;
@ -36,8 +38,8 @@ public class TrackSelectionParameters implements Parcelable {
*/
public static class Builder {
/* package */ String[] preferredAudioLanguage;
/* package */ String[] preferredTextLanguage;
/* package */ ImmutableList<String> preferredAudioLanguages;
/* package */ ImmutableList<String> preferredTextLanguages;
@C.RoleFlags /* package */ int preferredTextRoleFlags;
/* package */ boolean selectUndeterminedTextLanguage;
@C.SelectionFlags /* package */ int disabledTextTrackSelectionFlags;
@ -59,8 +61,8 @@ public class TrackSelectionParameters implements Parcelable {
*/
@Deprecated
public Builder() {
preferredAudioLanguage = new String[0];
preferredTextLanguage = new String[0];
preferredAudioLanguages = ImmutableList.of();
preferredTextLanguages = ImmutableList.of();
preferredTextRoleFlags = 0;
selectUndeterminedTextLanguage = false;
disabledTextTrackSelectionFlags = 0;
@ -71,8 +73,8 @@ public class TrackSelectionParameters implements Parcelable {
* the builder are obtained.
*/
/* package */ Builder(TrackSelectionParameters initialValues) {
preferredAudioLanguage = initialValues.preferredAudioLanguage;
preferredTextLanguage = initialValues.preferredTextLanguage;
preferredAudioLanguages = initialValues.preferredAudioLanguages;
preferredTextLanguages = initialValues.preferredTextLanguages;
preferredTextRoleFlags = initialValues.preferredTextRoleFlags;
selectUndeterminedTextLanguage = initialValues.selectUndeterminedTextLanguage;
disabledTextTrackSelectionFlags = initialValues.disabledTextTrackSelectionFlags;
@ -81,20 +83,16 @@ public class TrackSelectionParameters implements Parcelable {
/**
* Sets the preferred language for audio and forced text tracks.
*
* @param preferredAudioLanguage Preferred audio language as an IETF BCP 47 conformant tag, or
* @param preferredAudioLanguages Preferred audio language as an IETF BCP 47 conformant tag, or
* {@code null} to select the default track, or the first track if there's no default.
* @return This builder.
*/
public Builder setPreferredAudioLanguage(@Nullable String preferredAudioLanguage) {
if (preferredAudioLanguage == null) {
return setPreferredAudioLanguage(new String[0]);
public Builder setPreferredAudioLanguages(@Nullable String... preferredAudioLanguages) {
if (preferredAudioLanguages == null) {
this.preferredAudioLanguages = ImmutableList.of();
} else {
return setPreferredAudioLanguage(new String[] { preferredAudioLanguage });
this.preferredAudioLanguages = ImmutableList.copyOf(preferredAudioLanguages);
}
}
public Builder setPreferredAudioLanguage(String[] preferredAudioLanguage) {
this.preferredAudioLanguage = preferredAudioLanguage;
return this;
}
@ -118,20 +116,16 @@ public class TrackSelectionParameters implements Parcelable {
/**
* Sets the preferred language for text tracks.
*
* @param preferredTextLanguage Preferred text language as an IETF BCP 47 conformant tag, or
* @param preferredTextLanguages Preferred text language as an IETF BCP 47 conformant tag, or
* {@code null} to select the default track if there is one, or no track otherwise.
* @return This builder.
*/
public Builder setPreferredTextLanguage(@Nullable String preferredTextLanguage) {
if (preferredTextLanguage == null) {
return setPreferredTextLanguage(new String[0]);
public Builder setPreferredTextLanguages(@Nullable String... preferredTextLanguages) {
if (preferredTextLanguages == null) {
this.preferredTextLanguages = ImmutableList.of();
} else {
return setPreferredTextLanguage(new String[]{preferredTextLanguage});
this.preferredTextLanguages = ImmutableList.copyOf(preferredTextLanguages);
}
}
public Builder setPreferredTextLanguage(String[] preferredTextLanguage) {
this.preferredTextLanguage = preferredTextLanguage;
return this;
}
@ -148,7 +142,7 @@ public class TrackSelectionParameters implements Parcelable {
/**
* Sets whether a text track with undetermined language should be selected if no track with
* {@link #setPreferredTextLanguage(String)} is available, or if the preferred language is
* {@link #setPreferredTextLanguages(String...)} is available, or if the preferred language is
* unset.
*
* @param selectUndeterminedTextLanguage Whether a text track with undetermined language should
@ -177,9 +171,9 @@ public class TrackSelectionParameters implements Parcelable {
public TrackSelectionParameters build() {
return new TrackSelectionParameters(
// Audio
preferredAudioLanguage,
preferredAudioLanguages,
// Text
preferredTextLanguage,
preferredTextLanguages,
preferredTextRoleFlags,
selectUndeterminedTextLanguage,
disabledTextTrackSelectionFlags);
@ -201,7 +195,7 @@ public class TrackSelectionParameters implements Parcelable {
preferredTextRoleFlags = C.ROLE_FLAG_CAPTION | C.ROLE_FLAG_DESCRIBES_MUSIC_AND_SOUND;
Locale preferredLocale = captioningManager.getLocale();
if (preferredLocale != null) {
preferredTextLanguage = new String[] { Util.getLocaleLanguageTag(preferredLocale) };
preferredTextLanguages = ImmutableList.of(Util.getLocaleLanguageTag(preferredLocale));
}
}
}
@ -238,13 +232,13 @@ public class TrackSelectionParameters implements Parcelable {
* {@code null} selects the default track, or the first track if there's no default. The default
* value is {@code null}.
*/
public final String[] preferredAudioLanguage;
public final ImmutableList<String> preferredAudioLanguages;
/**
* The preferred language for text tracks as an IETF BCP 47 conformant tag. {@code null} selects
* the default track if there is one, or no track otherwise. The default value is {@code null}, or
* the language of the accessibility {@link CaptioningManager} if enabled.
*/
public final String[] preferredTextLanguage;
public final ImmutableList<String> preferredTextLanguages;
/**
* The preferred {@link C.RoleFlags} for text tracks. {@code 0} selects the default track if there
* is one, or no track otherwise. The default value is {@code 0}, or {@link C#ROLE_FLAG_SUBTITLE}
@ -254,7 +248,7 @@ public class TrackSelectionParameters implements Parcelable {
@C.RoleFlags public final int preferredTextRoleFlags;
/**
* Whether a text track with undetermined language should be selected if no track with {@link
* #preferredTextLanguage} is available, or if {@link #preferredTextLanguage} is unset. The
* #preferredTextLanguages} is available, or if {@link #preferredTextLanguages} is unset. The
* default value is {@code false}.
*/
public final boolean selectUndeterminedTextLanguage;
@ -265,21 +259,15 @@ public class TrackSelectionParameters implements Parcelable {
@C.SelectionFlags public final int disabledTextTrackSelectionFlags;
/* package */ TrackSelectionParameters(
String[] preferredAudioLanguage,
String[] preferredTextLanguage,
ImmutableList<String> preferredAudioLanguages,
ImmutableList<String> preferredTextLanguages,
@C.RoleFlags int preferredTextRoleFlags,
boolean selectUndeterminedTextLanguage,
@C.SelectionFlags int disabledTextTrackSelectionFlags) {
// Audio
this.preferredAudioLanguage = new String[preferredAudioLanguage.length];
for (int i = 0; i < preferredAudioLanguage.length; i++) {
this.preferredAudioLanguage[i] = Util.normalizeLanguageCode(preferredAudioLanguage[i]);
}
this.preferredAudioLanguages = preferredAudioLanguages;
// Text
this.preferredTextLanguage = new String[preferredAudioLanguage.length];
for (int i = 0; i < preferredTextLanguage.length; i++) {
this.preferredTextLanguage[i] = Util.normalizeLanguageCode(preferredTextLanguage[i]);
}
this.preferredTextLanguages = preferredTextLanguages;
this.preferredTextRoleFlags = preferredTextRoleFlags;
this.selectUndeterminedTextLanguage = selectUndeterminedTextLanguage;
this.disabledTextTrackSelectionFlags = disabledTextTrackSelectionFlags;
@ -287,15 +275,17 @@ public class TrackSelectionParameters implements Parcelable {
/* package */ TrackSelectionParameters(Parcel in) {
int preferredAudioLanguageSize = in.readInt();
this.preferredAudioLanguage = new String[preferredAudioLanguageSize];
String[] preferredAudioLanguages = new String[preferredAudioLanguageSize];
for (int i = 0; i < preferredAudioLanguageSize; i++) {
preferredAudioLanguage[i] = in.readString();
preferredAudioLanguages[i] = in.readString();
}
this.preferredAudioLanguages = ImmutableList.copyOf(preferredAudioLanguages);
int preferredTextLanguageSize = in.readInt();
this.preferredTextLanguage = new String[preferredTextLanguageSize];
String[] preferredTextLanguages = new String[preferredTextLanguageSize];
for (int i = 0; i < preferredTextLanguageSize; i++) {
preferredTextLanguage[i] = in.readString();
preferredTextLanguages[i] = in.readString();
}
this.preferredTextLanguages = ImmutableList.copyOf(preferredTextLanguages);
this.preferredTextRoleFlags = in.readInt();
this.selectUndeterminedTextLanguage = Util.readBoolean(in);
this.disabledTextTrackSelectionFlags = in.readInt();
@ -316,8 +306,8 @@ public class TrackSelectionParameters implements Parcelable {
return false;
}
TrackSelectionParameters other = (TrackSelectionParameters) obj;
return Arrays.equals(preferredAudioLanguage, other.preferredAudioLanguage)
&& Arrays.equals(preferredTextLanguage, other.preferredTextLanguage)
return preferredAudioLanguages.equals(other.preferredAudioLanguages)
&& preferredTextLanguages.equals(other.preferredTextLanguages)
&& preferredTextRoleFlags == other.preferredTextRoleFlags
&& selectUndeterminedTextLanguage == other.selectUndeterminedTextLanguage
&& disabledTextTrackSelectionFlags == other.disabledTextTrackSelectionFlags;
@ -326,8 +316,8 @@ public class TrackSelectionParameters implements Parcelable {
@Override
public int hashCode() {
int result = 1;
result = 31 * result + Arrays.hashCode(preferredAudioLanguage);
result = 31 * result + Arrays.hashCode(preferredTextLanguage);
result = 31 * result + preferredAudioLanguages.hashCode();
result = 31 * result + preferredTextLanguages.hashCode();
result = 31 * result + preferredTextRoleFlags;
result = 31 * result + (selectUndeterminedTextLanguage ? 1 : 0);
result = 31 * result + disabledTextTrackSelectionFlags;
@ -343,12 +333,12 @@ public class TrackSelectionParameters implements Parcelable {
@Override
public void writeToParcel(Parcel dest, int flags) {
dest.writeInt(preferredAudioLanguage.length);
for (String s : preferredAudioLanguage) {
dest.writeInt(preferredAudioLanguages.size());
for (String s : preferredAudioLanguages) {
dest.writeString(s);
}
dest.writeInt(preferredTextLanguage.length);
for (String s : preferredTextLanguage) {
dest.writeInt(preferredTextLanguages.size());
for (String s : preferredTextLanguages) {
dest.writeString(s);
}
dest.writeInt(preferredTextRoleFlags);

View file

@ -251,8 +251,8 @@ public class DownloadHelperTest {
prepareDownloadHelper(downloadHelper);
DefaultTrackSelector.Parameters parameters =
new DefaultTrackSelector.ParametersBuilder(ApplicationProvider.getApplicationContext())
.setPreferredAudioLanguage("ZH")
.setPreferredTextLanguage("ZH")
.setPreferredAudioLanguages("ZH")
.setPreferredTextLanguages("ZH")
.setRendererDisabled(/* rendererIndex= */ 2, true)
.build();
@ -288,8 +288,8 @@ public class DownloadHelperTest {
// all video tracks to initial video single track selection.
DefaultTrackSelector.Parameters parameters =
new DefaultTrackSelector.ParametersBuilder(ApplicationProvider.getApplicationContext())
.setPreferredAudioLanguage("ZH")
.setPreferredTextLanguage("US")
.setPreferredAudioLanguages("ZH")
.setPreferredTextLanguages("US")
.build();
// Add only to one period selection to verify second period selection is untouched.
@ -392,8 +392,8 @@ public class DownloadHelperTest {
// also renderers without any track groups.
DefaultTrackSelector.Parameters parameters =
new DefaultTrackSelector.ParametersBuilder(ApplicationProvider.getApplicationContext())
.setPreferredAudioLanguage("ZH")
.setPreferredTextLanguage("US")
.setPreferredAudioLanguages("ZH")
.setPreferredTextLanguages("US")
.build();
downloadHelper.addTrackSelection(/* periodIndex= */ 0, parameters);
byte[] data = new byte[10];

View file

@ -283,7 +283,7 @@ public final class DefaultTrackSelectorTest {
*/
@Test
public void setParameterWithNonDefaultParameterNotifyInvalidationListener() {
ParametersBuilder builder = defaultParameters.buildUpon().setPreferredAudioLanguage("eng");
ParametersBuilder builder = defaultParameters.buildUpon().setPreferredAudioLanguages("eng");
trackSelector.setParameters(builder);
verify(invalidationListener).onTrackSelectionsInvalidated();
}
@ -295,7 +295,7 @@ public final class DefaultTrackSelectorTest {
*/
@Test
public void setParameterWithSameParametersDoesNotNotifyInvalidationListenerAgain() {
ParametersBuilder builder = defaultParameters.buildUpon().setPreferredAudioLanguage("eng");
ParametersBuilder builder = defaultParameters.buildUpon().setPreferredAudioLanguages("eng");
trackSelector.setParameters(builder);
trackSelector.setParameters(builder);
verify(invalidationListener, times(1)).onTrackSelectionsInvalidated();
@ -369,7 +369,7 @@ public final class DefaultTrackSelectorTest {
Format enAudioFormat = formatBuilder.setLanguage("eng").build();
TrackGroupArray trackGroups = wrapFormats(frAudioFormat, enAudioFormat);
trackSelector.setParameters(defaultParameters.buildUpon().setPreferredAudioLanguage("eng"));
trackSelector.setParameters(defaultParameters.buildUpon().setPreferredAudioLanguages("eng"));
TrackSelectorResult result =
trackSelector.selectTracks(
new RendererCapabilities[] {ALL_AUDIO_FORMAT_SUPPORTED_RENDERER_CAPABILITIES},
@ -391,7 +391,7 @@ public final class DefaultTrackSelectorTest {
Format enNonDefaultFormat = formatBuilder.setLanguage("eng").setSelectionFlags(0).build();
TrackGroupArray trackGroups = wrapFormats(frDefaultFormat, enNonDefaultFormat);
trackSelector.setParameters(defaultParameters.buildUpon().setPreferredAudioLanguage("eng"));
trackSelector.setParameters(defaultParameters.buildUpon().setPreferredAudioLanguages("eng"));
TrackSelectorResult result =
trackSelector.selectTracks(
new RendererCapabilities[] {ALL_AUDIO_FORMAT_SUPPORTED_RENDERER_CAPABILITIES},
@ -511,7 +511,7 @@ public final class DefaultTrackSelectorTest {
RendererCapabilities mappedAudioRendererCapabilities =
new FakeMappedRendererCapabilities(C.TRACK_TYPE_AUDIO, mappedCapabilities);
trackSelector.setParameters(defaultParameters.buildUpon().setPreferredAudioLanguage("eng"));
trackSelector.setParameters(defaultParameters.buildUpon().setPreferredAudioLanguages("eng"));
TrackSelectorResult result =
trackSelector.selectTracks(
new RendererCapabilities[] {mappedAudioRendererCapabilities},
@ -546,7 +546,7 @@ public final class DefaultTrackSelectorTest {
RendererCapabilities mappedAudioRendererCapabilities =
new FakeMappedRendererCapabilities(C.TRACK_TYPE_AUDIO, mappedCapabilities);
trackSelector.setParameters(defaultParameters.buildUpon().setPreferredAudioLanguage("eng"));
trackSelector.setParameters(defaultParameters.buildUpon().setPreferredAudioLanguages("eng"));
TrackSelectorResult result =
trackSelector.selectTracks(
new RendererCapabilities[] {mappedAudioRendererCapabilities},
@ -841,7 +841,7 @@ public final class DefaultTrackSelectorTest {
// There is a preferred language, so a language-matching track flagged as default should
// be selected, and the one without forced flag should be preferred.
trackSelector.setParameters(defaultParameters.buildUpon().setPreferredTextLanguage("eng"));
trackSelector.setParameters(defaultParameters.buildUpon().setPreferredTextLanguages("eng"));
result = trackSelector.selectTracks(textRendererCapabilities, trackGroups, periodId, TIMELINE);
assertFixedSelection(result.selections.get(0), trackGroups, defaultOnly);
@ -929,7 +929,7 @@ public final class DefaultTrackSelectorTest {
result = trackSelector.selectTracks(textRendererCapabilites, trackGroups, periodId, TIMELINE);
assertFixedSelection(result.selections.get(0), trackGroups, undeterminedUnd);
ParametersBuilder builder = defaultParameters.buildUpon().setPreferredTextLanguage("spa");
ParametersBuilder builder = defaultParameters.buildUpon().setPreferredTextLanguages("spa");
trackSelector.setParameters(builder);
result = trackSelector.selectTracks(textRendererCapabilites, trackGroups, periodId, TIMELINE);
assertFixedSelection(result.selections.get(0), trackGroups, spanish);
@ -984,13 +984,13 @@ public final class DefaultTrackSelectorTest {
assertNoSelection(result.selections.get(1));
// Explicit language preference for english. First renderer should be used.
trackSelector.setParameters(defaultParameters.buildUpon().setPreferredTextLanguage("en"));
trackSelector.setParameters(defaultParameters.buildUpon().setPreferredTextLanguages("en"));
result = trackSelector.selectTracks(rendererCapabilities, trackGroups, periodId, TIMELINE);
assertFixedSelection(result.selections.get(0), trackGroups, english);
assertNoSelection(result.selections.get(1));
// Explicit language preference for German. Second renderer should be used.
trackSelector.setParameters(defaultParameters.buildUpon().setPreferredTextLanguage("de"));
trackSelector.setParameters(defaultParameters.buildUpon().setPreferredTextLanguages("de"));
result = trackSelector.selectTracks(rendererCapabilities, trackGroups, periodId, TIMELINE);
assertNoSelection(result.selections.get(0));
assertFixedSelection(result.selections.get(1), trackGroups, german);
@ -1290,13 +1290,13 @@ public final class DefaultTrackSelectorTest {
assertNoSelection(result.selections.get(1));
// Explicit language preference for english. First renderer should be used.
trackSelector.setParameters(defaultParameters.buildUpon().setPreferredAudioLanguage("en"));
trackSelector.setParameters(defaultParameters.buildUpon().setPreferredAudioLanguages("en"));
result = trackSelector.selectTracks(rendererCapabilities, trackGroups, periodId, TIMELINE);
assertFixedSelection(result.selections.get(0), trackGroups, english);
assertNoSelection(result.selections.get(1));
// Explicit language preference for German. Second renderer should be used.
trackSelector.setParameters(defaultParameters.buildUpon().setPreferredAudioLanguage("de"));
trackSelector.setParameters(defaultParameters.buildUpon().setPreferredAudioLanguages("de"));
result = trackSelector.selectTracks(rendererCapabilities, trackGroups, periodId, TIMELINE);
assertNoSelection(result.selections.get(0));
assertFixedSelection(result.selections.get(1), trackGroups, german);