Skip to content
Toggle navigation
P
Projects
G
Groups
S
Snippets
Help
SDK
/
exoplayer
This project
Loading...
Sign in
Toggle navigation
Go to a project
Project
Repository
Issues
0
Merge Requests
0
Pipelines
Wiki
Snippets
Settings
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Commit
7bfde6a5
authored
Sep 03, 2020
by
Corentin Zuber
Browse files
Options
_('Browse Files')
Download
Email Patches
Plain Diff
Fix comments
parent
50582417
Show whitespace changes
Inline
Side-by-side
Showing
5 changed files
with
89 additions
and
95 deletions
library/core/src/main/java/com/google/android/exoplayer2/offline/DownloadHelper.java
library/core/src/main/java/com/google/android/exoplayer2/trackselection/DefaultTrackSelector.java
library/core/src/main/java/com/google/android/exoplayer2/trackselection/TrackSelectionParameters.java
library/core/src/test/java/com/google/android/exoplayer2/offline/DownloadHelperTest.java
library/core/src/test/java/com/google/android/exoplayer2/trackselection/DefaultTrackSelectorTest.java
library/core/src/main/java/com/google/android/exoplayer2/offline/DownloadHelper.java
View file @
7bfde6a5
...
@@ -654,7 +654,7 @@ public final class DownloadHelper {
...
@@ -654,7 +654,7 @@ public final class DownloadHelper {
}
}
}
}
for
(
String
language
:
languages
)
{
for
(
String
language
:
languages
)
{
parametersBuilder
.
setPreferredAudioLanguage
(
language
);
parametersBuilder
.
setPreferredAudioLanguage
s
(
language
);
addTrackSelection
(
periodIndex
,
parametersBuilder
.
build
());
addTrackSelection
(
periodIndex
,
parametersBuilder
.
build
());
}
}
}
}
...
@@ -685,7 +685,7 @@ public final class DownloadHelper {
...
@@ -685,7 +685,7 @@ public final class DownloadHelper {
}
}
parametersBuilder
.
setSelectUndeterminedTextLanguage
(
selectUndeterminedTextLanguage
);
parametersBuilder
.
setSelectUndeterminedTextLanguage
(
selectUndeterminedTextLanguage
);
for
(
String
language
:
languages
)
{
for
(
String
language
:
languages
)
{
parametersBuilder
.
setPreferredTextLanguage
(
language
);
parametersBuilder
.
setPreferredTextLanguage
s
(
language
);
addTrackSelection
(
periodIndex
,
parametersBuilder
.
build
());
addTrackSelection
(
periodIndex
,
parametersBuilder
.
build
());
}
}
}
}
...
...
library/core/src/main/java/com/google/android/exoplayer2/trackselection/DefaultTrackSelector.java
View file @
7bfde6a5
...
@@ -39,6 +39,7 @@ import com.google.android.exoplayer2.source.TrackGroupArray;
...
@@ -39,6 +39,7 @@ import com.google.android.exoplayer2.source.TrackGroupArray;
import
com.google.android.exoplayer2.util.Assertions
;
import
com.google.android.exoplayer2.util.Assertions
;
import
com.google.android.exoplayer2.util.Util
;
import
com.google.android.exoplayer2.util.Util
;
import
com.google.common.collect.ComparisonChain
;
import
com.google.common.collect.ComparisonChain
;
import
com.google.common.collect.ImmutableList
;
import
com.google.common.collect.Ordering
;
import
com.google.common.collect.Ordering
;
import
com.google.common.primitives.Ints
;
import
com.google.common.primitives.Ints
;
import
java.util.ArrayList
;
import
java.util.ArrayList
;
...
@@ -445,14 +446,8 @@ public class DefaultTrackSelector extends MappingTrackSelector {
...
@@ -445,14 +446,8 @@ public class DefaultTrackSelector extends MappingTrackSelector {
// Audio
// Audio
@Override
@Override
public
ParametersBuilder
setPreferredAudioLanguage
(
@Nullable
String
preferredAudioLanguage
)
{
public
ParametersBuilder
setPreferredAudioLanguages
(
@Nullable
String
...
preferredAudioLanguages
)
{
super
.
setPreferredAudioLanguage
(
preferredAudioLanguage
);
super
.
setPreferredAudioLanguages
(
preferredAudioLanguages
);
return
this
;
}
@Override
public
ParametersBuilder
setPreferredAudioLanguage
(
String
[]
preferredAudioLanguage
)
{
super
.
setPreferredAudioLanguage
(
preferredAudioLanguage
);
return
this
;
return
this
;
}
}
...
@@ -547,8 +542,8 @@ public class DefaultTrackSelector extends MappingTrackSelector {
...
@@ -547,8 +542,8 @@ public class DefaultTrackSelector extends MappingTrackSelector {
}
}
@Override
@Override
public
ParametersBuilder
setPreferredTextLanguage
(
@Nullable
String
preferredTextLanguage
)
{
public
ParametersBuilder
setPreferredTextLanguage
s
(
@Nullable
String
...
preferredTextLanguages
)
{
super
.
setPreferredTextLanguage
(
preferredTextLanguage
);
super
.
setPreferredTextLanguage
s
(
preferredTextLanguages
);
return
this
;
return
this
;
}
}
...
@@ -773,7 +768,7 @@ public class DefaultTrackSelector extends MappingTrackSelector {
...
@@ -773,7 +768,7 @@ public class DefaultTrackSelector extends MappingTrackSelector {
viewportHeight
,
viewportHeight
,
viewportOrientationMayChange
,
viewportOrientationMayChange
,
// Audio
// Audio
preferredAudioLanguage
,
preferredAudioLanguage
s
,
maxAudioChannelCount
,
maxAudioChannelCount
,
maxAudioBitrate
,
maxAudioBitrate
,
exceedAudioConstraintsIfNecessary
,
exceedAudioConstraintsIfNecessary
,
...
@@ -781,7 +776,7 @@ public class DefaultTrackSelector extends MappingTrackSelector {
...
@@ -781,7 +776,7 @@ public class DefaultTrackSelector extends MappingTrackSelector {
allowAudioMixedSampleRateAdaptiveness
,
allowAudioMixedSampleRateAdaptiveness
,
allowAudioMixedChannelCountAdaptiveness
,
allowAudioMixedChannelCountAdaptiveness
,
// Text
// Text
preferredTextLanguage
,
preferredTextLanguage
s
,
preferredTextRoleFlags
,
preferredTextRoleFlags
,
selectUndeterminedTextLanguage
,
selectUndeterminedTextLanguage
,
disabledTextTrackSelectionFlags
,
disabledTextTrackSelectionFlags
,
...
@@ -1021,7 +1016,7 @@ public class DefaultTrackSelector extends MappingTrackSelector {
...
@@ -1021,7 +1016,7 @@ public class DefaultTrackSelector extends MappingTrackSelector {
int
viewportHeight
,
int
viewportHeight
,
boolean
viewportOrientationMayChange
,
boolean
viewportOrientationMayChange
,
// Audio
// Audio
String
[]
preferredAudioLanguage
,
ImmutableList
<
String
>
preferredAudioLanguage
,
int
maxAudioChannelCount
,
int
maxAudioChannelCount
,
int
maxAudioBitrate
,
int
maxAudioBitrate
,
boolean
exceedAudioConstraintsIfNecessary
,
boolean
exceedAudioConstraintsIfNecessary
,
...
@@ -1029,7 +1024,7 @@ public class DefaultTrackSelector extends MappingTrackSelector {
...
@@ -1029,7 +1024,7 @@ public class DefaultTrackSelector extends MappingTrackSelector {
boolean
allowAudioMixedSampleRateAdaptiveness
,
boolean
allowAudioMixedSampleRateAdaptiveness
,
boolean
allowAudioMixedChannelCountAdaptiveness
,
boolean
allowAudioMixedChannelCountAdaptiveness
,
// Text
// Text
String
[]
preferredTextLanguage
,
ImmutableList
<
String
>
preferredTextLanguage
,
@C
.
RoleFlags
int
preferredTextRoleFlags
,
@C
.
RoleFlags
int
preferredTextRoleFlags
,
boolean
selectUndeterminedTextLanguage
,
boolean
selectUndeterminedTextLanguage
,
@C
.
SelectionFlags
int
disabledTextTrackSelectionFlags
,
@C
.
SelectionFlags
int
disabledTextTrackSelectionFlags
,
...
@@ -2613,6 +2608,7 @@ public class DefaultTrackSelector extends MappingTrackSelector {
...
@@ -2613,6 +2608,7 @@ public class DefaultTrackSelector extends MappingTrackSelector {
private
final
Parameters
parameters
;
private
final
Parameters
parameters
;
private
final
boolean
isWithinRendererCapabilities
;
private
final
boolean
isWithinRendererCapabilities
;
private
final
int
preferredLanguageScore
;
private
final
int
preferredLanguageScore
;
private
final
int
preferredLanguageIndex
;
private
final
int
localeLanguageMatchIndex
;
private
final
int
localeLanguageMatchIndex
;
private
final
int
localeLanguageScore
;
private
final
int
localeLanguageScore
;
private
final
boolean
isDefaultSelectionFlag
;
private
final
boolean
isDefaultSelectionFlag
;
...
@@ -2626,14 +2622,18 @@ public class DefaultTrackSelector extends MappingTrackSelector {
...
@@ -2626,14 +2622,18 @@ public class DefaultTrackSelector extends MappingTrackSelector {
isWithinRendererCapabilities
=
isWithinRendererCapabilities
=
isSupported
(
formatSupport
,
/* allowExceedsCapabilities= */
false
);
isSupported
(
formatSupport
,
/* allowExceedsCapabilities= */
false
);
int
bestLanguageScore
=
0
;
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
(
int
score
=
getFormatLanguageScore
(
format
,
format
,
parameters
.
preferredAudioLanguage
[
i
]
,
parameters
.
preferredAudioLanguage
s
.
get
(
i
)
,
/* allowUndeterminedFormatLanguage= */
false
);
/* allowUndeterminedFormatLanguage= */
false
);
score
=
1000
*
score
+
parameters
.
preferredAudioLanguage
.
length
-
i
;
// Priorise the first items in array
if
(
score
>
0
)
{
bestLanguageScore
=
Math
.
max
(
bestLanguageScore
,
score
);
bestLanguageIndex
=
i
;
bestLanguageScore
=
score
;
}
}
}
preferredLanguageIndex
=
bestLanguageIndex
;
preferredLanguageScore
=
bestLanguageScore
;
preferredLanguageScore
=
bestLanguageScore
;
isDefaultSelectionFlag
=
(
format
.
selectionFlags
&
C
.
SELECTION_FLAG_DEFAULT
)
!=
0
;
isDefaultSelectionFlag
=
(
format
.
selectionFlags
&
C
.
SELECTION_FLAG_DEFAULT
)
!=
0
;
channelCount
=
format
.
channelCount
;
channelCount
=
format
.
channelCount
;
...
@@ -2677,6 +2677,10 @@ public class DefaultTrackSelector extends MappingTrackSelector {
...
@@ -2677,6 +2677,10 @@ public class DefaultTrackSelector extends MappingTrackSelector {
:
FORMAT_VALUE_ORDERING
.
reverse
();
:
FORMAT_VALUE_ORDERING
.
reverse
();
return
ComparisonChain
.
start
()
return
ComparisonChain
.
start
()
.
compareFalseFirst
(
this
.
isWithinRendererCapabilities
,
other
.
isWithinRendererCapabilities
)
.
compareFalseFirst
(
this
.
isWithinRendererCapabilities
,
other
.
isWithinRendererCapabilities
)
.
compare
(
this
.
preferredLanguageIndex
,
other
.
preferredLanguageIndex
,
Ordering
.
natural
().
reverse
())
.
compare
(
this
.
preferredLanguageScore
,
other
.
preferredLanguageScore
)
.
compare
(
this
.
preferredLanguageScore
,
other
.
preferredLanguageScore
)
.
compareFalseFirst
(
this
.
isWithinConstraints
,
other
.
isWithinConstraints
)
.
compareFalseFirst
(
this
.
isWithinConstraints
,
other
.
isWithinConstraints
)
.
compare
(
.
compare
(
...
@@ -2729,10 +2733,10 @@ public class DefaultTrackSelector extends MappingTrackSelector {
...
@@ -2729,10 +2733,10 @@ public class DefaultTrackSelector extends MappingTrackSelector {
isDefault
=
(
maskedSelectionFlags
&
C
.
SELECTION_FLAG_DEFAULT
)
!=
0
;
isDefault
=
(
maskedSelectionFlags
&
C
.
SELECTION_FLAG_DEFAULT
)
!=
0
;
isForced
=
(
maskedSelectionFlags
&
C
.
SELECTION_FLAG_FORCED
)
!=
0
;
isForced
=
(
maskedSelectionFlags
&
C
.
SELECTION_FLAG_FORCED
)
!=
0
;
int
bestLanguageScore
=
0
;
int
bestLanguageScore
=
0
;
for
(
int
i
=
0
;
i
<
parameters
.
preferredTextLanguage
.
length
;
i
++)
{
for
(
int
i
=
0
;
i
<
parameters
.
preferredTextLanguage
s
.
size
()
;
i
++)
{
int
score
=
getFormatLanguageScore
(
int
score
=
getFormatLanguageScore
(
format
,
parameters
.
preferredTextLanguage
[
i
]
,
parameters
.
selectUndeterminedTextLanguage
);
format
,
parameters
.
preferredTextLanguage
s
.
get
(
i
)
,
parameters
.
selectUndeterminedTextLanguage
);
score
=
1000
*
score
+
parameters
.
preferredTextLanguage
.
length
-
i
;
// Priorise the first items in array
score
=
1000
*
score
+
parameters
.
preferredTextLanguage
s
.
size
()
-
i
;
// Priorise the first items in array
bestLanguageScore
=
Math
.
max
(
bestLanguageScore
,
score
);
bestLanguageScore
=
Math
.
max
(
bestLanguageScore
,
score
);
}
}
preferredLanguageScore
=
bestLanguageScore
;
preferredLanguageScore
=
bestLanguageScore
;
...
@@ -2746,7 +2750,7 @@ public class DefaultTrackSelector extends MappingTrackSelector {
...
@@ -2746,7 +2750,7 @@ public class DefaultTrackSelector extends MappingTrackSelector {
getFormatLanguageScore
(
format
,
selectedAudioLanguage
,
selectedAudioLanguageUndetermined
);
getFormatLanguageScore
(
format
,
selectedAudioLanguage
,
selectedAudioLanguageUndetermined
);
isWithinConstraints
=
isWithinConstraints
=
preferredLanguageScore
>
0
preferredLanguageScore
>
0
||
(
parameters
.
preferredTextLanguage
.
length
==
0
&&
preferredRoleFlagsScore
>
0
)
||
(
parameters
.
preferredTextLanguage
s
.
size
()
==
0
&&
preferredRoleFlagsScore
>
0
)
||
isDefault
||
isDefault
||
(
isForced
&&
selectedAudioLanguageScore
>
0
);
||
(
isForced
&&
selectedAudioLanguageScore
>
0
);
}
}
...
...
library/core/src/main/java/com/google/android/exoplayer2/trackselection/TrackSelectionParameters.java
View file @
7bfde6a5
...
@@ -24,6 +24,8 @@ import androidx.annotation.Nullable;
...
@@ -24,6 +24,8 @@ import androidx.annotation.Nullable;
import
androidx.annotation.RequiresApi
;
import
androidx.annotation.RequiresApi
;
import
com.google.android.exoplayer2.C
;
import
com.google.android.exoplayer2.C
;
import
com.google.android.exoplayer2.util.Util
;
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.Arrays
;
import
java.util.Locale
;
import
java.util.Locale
;
...
@@ -36,8 +38,8 @@ public class TrackSelectionParameters implements Parcelable {
...
@@ -36,8 +38,8 @@ public class TrackSelectionParameters implements Parcelable {
*/
*/
public
static
class
Builder
{
public
static
class
Builder
{
/* package */
String
[]
preferredAudioLanguage
;
/* package */
ImmutableList
<
String
>
preferredAudioLanguages
;
/* package */
String
[]
preferredTextLanguage
;
/* package */
ImmutableList
<
String
>
preferredTextLanguages
;
@C
.
RoleFlags
/* package */
int
preferredTextRoleFlags
;
@C
.
RoleFlags
/* package */
int
preferredTextRoleFlags
;
/* package */
boolean
selectUndeterminedTextLanguage
;
/* package */
boolean
selectUndeterminedTextLanguage
;
@C
.
SelectionFlags
/* package */
int
disabledTextTrackSelectionFlags
;
@C
.
SelectionFlags
/* package */
int
disabledTextTrackSelectionFlags
;
...
@@ -59,8 +61,8 @@ public class TrackSelectionParameters implements Parcelable {
...
@@ -59,8 +61,8 @@ public class TrackSelectionParameters implements Parcelable {
*/
*/
@Deprecated
@Deprecated
public
Builder
()
{
public
Builder
()
{
preferredAudioLanguage
=
new
String
[
0
]
;
preferredAudioLanguage
s
=
ImmutableList
.
of
()
;
preferredTextLanguage
=
new
String
[
0
]
;
preferredTextLanguage
s
=
ImmutableList
.
of
()
;
preferredTextRoleFlags
=
0
;
preferredTextRoleFlags
=
0
;
selectUndeterminedTextLanguage
=
false
;
selectUndeterminedTextLanguage
=
false
;
disabledTextTrackSelectionFlags
=
0
;
disabledTextTrackSelectionFlags
=
0
;
...
@@ -71,8 +73,8 @@ public class TrackSelectionParameters implements Parcelable {
...
@@ -71,8 +73,8 @@ public class TrackSelectionParameters implements Parcelable {
* the builder are obtained.
* the builder are obtained.
*/
*/
/* package */
Builder
(
TrackSelectionParameters
initialValues
)
{
/* package */
Builder
(
TrackSelectionParameters
initialValues
)
{
preferredAudioLanguage
=
initialValues
.
preferredAudioLanguage
;
preferredAudioLanguage
s
=
initialValues
.
preferredAudioLanguages
;
preferredTextLanguage
=
initialValues
.
preferredTextLanguage
;
preferredTextLanguage
s
=
initialValues
.
preferredTextLanguages
;
preferredTextRoleFlags
=
initialValues
.
preferredTextRoleFlags
;
preferredTextRoleFlags
=
initialValues
.
preferredTextRoleFlags
;
selectUndeterminedTextLanguage
=
initialValues
.
selectUndeterminedTextLanguage
;
selectUndeterminedTextLanguage
=
initialValues
.
selectUndeterminedTextLanguage
;
disabledTextTrackSelectionFlags
=
initialValues
.
disabledTextTrackSelectionFlags
;
disabledTextTrackSelectionFlags
=
initialValues
.
disabledTextTrackSelectionFlags
;
...
@@ -81,20 +83,16 @@ public class TrackSelectionParameters implements Parcelable {
...
@@ -81,20 +83,16 @@ public class TrackSelectionParameters implements Parcelable {
/**
/**
* Sets the preferred language for audio and forced text tracks.
* Sets the preferred language for audio and forced text tracks.
*
*
* @param preferredAudioLanguage Preferred audio language as an IETF BCP 47 conformant tag, or
* @param preferredAudioLanguage
s
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.
* {@code null} to select the default track, or the first track if there's no default.
* @return This builder.
* @return This builder.
*/
*/
public
Builder
setPreferredAudioLanguage
(
@Nullable
String
preferredAudioLanguage
)
{
public
Builder
setPreferredAudioLanguage
s
(
@Nullable
String
...
preferredAudioLanguages
)
{
if
(
preferredAudioLanguage
==
null
)
{
if
(
preferredAudioLanguage
s
==
null
)
{
return
setPreferredAudioLanguage
(
new
String
[
0
]
);
this
.
preferredAudioLanguages
=
ImmutableList
.
of
(
);
}
else
{
}
else
{
return
setPreferredAudioLanguage
(
new
String
[]
{
preferredAudioLanguage
}
);
this
.
preferredAudioLanguages
=
ImmutableList
.
copyOf
(
preferredAudioLanguages
);
}
}
}
public
Builder
setPreferredAudioLanguage
(
String
[]
preferredAudioLanguage
)
{
this
.
preferredAudioLanguage
=
preferredAudioLanguage
;
return
this
;
return
this
;
}
}
...
@@ -118,20 +116,16 @@ public class TrackSelectionParameters implements Parcelable {
...
@@ -118,20 +116,16 @@ public class TrackSelectionParameters implements Parcelable {
/**
/**
* Sets the preferred language for text tracks.
* Sets the preferred language for text tracks.
*
*
* @param preferredTextLanguage Preferred text language as an IETF BCP 47 conformant tag, or
* @param preferredTextLanguage
s
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.
* {@code null} to select the default track if there is one, or no track otherwise.
* @return This builder.
* @return This builder.
*/
*/
public
Builder
setPreferredTextLanguage
(
@Nullable
String
preferredTextLanguage
)
{
public
Builder
setPreferredTextLanguage
s
(
@Nullable
String
...
preferredTextLanguages
)
{
if
(
preferredTextLanguage
==
null
)
{
if
(
preferredTextLanguage
s
==
null
)
{
return
setPreferredTextLanguage
(
new
String
[
0
]
);
this
.
preferredTextLanguages
=
ImmutableList
.
of
(
);
}
else
{
}
else
{
return
setPreferredTextLanguage
(
new
String
[]{
preferredTextLanguage
});
this
.
preferredTextLanguages
=
ImmutableList
.
copyOf
(
preferredTextLanguages
);
}
}
}
public
Builder
setPreferredTextLanguage
(
String
[]
preferredTextLanguage
)
{
this
.
preferredTextLanguage
=
preferredTextLanguage
;
return
this
;
return
this
;
}
}
...
@@ -148,7 +142,7 @@ public class TrackSelectionParameters implements Parcelable {
...
@@ -148,7 +142,7 @@ public class TrackSelectionParameters implements Parcelable {
/**
/**
* Sets whether a text track with undetermined language should be selected if no track with
* 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 #setPreferredTextLanguage
s(String...
)} is available, or if the preferred language is
* unset.
* unset.
*
*
* @param selectUndeterminedTextLanguage Whether a text track with undetermined language should
* @param selectUndeterminedTextLanguage Whether a text track with undetermined language should
...
@@ -177,9 +171,9 @@ public class TrackSelectionParameters implements Parcelable {
...
@@ -177,9 +171,9 @@ public class TrackSelectionParameters implements Parcelable {
public
TrackSelectionParameters
build
()
{
public
TrackSelectionParameters
build
()
{
return
new
TrackSelectionParameters
(
return
new
TrackSelectionParameters
(
// Audio
// Audio
preferredAudioLanguage
,
preferredAudioLanguage
s
,
// Text
// Text
preferredTextLanguage
,
preferredTextLanguage
s
,
preferredTextRoleFlags
,
preferredTextRoleFlags
,
selectUndeterminedTextLanguage
,
selectUndeterminedTextLanguage
,
disabledTextTrackSelectionFlags
);
disabledTextTrackSelectionFlags
);
...
@@ -201,7 +195,7 @@ public class TrackSelectionParameters implements Parcelable {
...
@@ -201,7 +195,7 @@ public class TrackSelectionParameters implements Parcelable {
preferredTextRoleFlags
=
C
.
ROLE_FLAG_CAPTION
|
C
.
ROLE_FLAG_DESCRIBES_MUSIC_AND_SOUND
;
preferredTextRoleFlags
=
C
.
ROLE_FLAG_CAPTION
|
C
.
ROLE_FLAG_DESCRIBES_MUSIC_AND_SOUND
;
Locale
preferredLocale
=
captioningManager
.
getLocale
();
Locale
preferredLocale
=
captioningManager
.
getLocale
();
if
(
preferredLocale
!=
null
)
{
if
(
preferredLocale
!=
null
)
{
preferredTextLanguage
=
new
String
[]
{
Util
.
getLocaleLanguageTag
(
preferredLocale
)
}
;
preferredTextLanguage
s
=
ImmutableList
.
of
(
Util
.
getLocaleLanguageTag
(
preferredLocale
))
;
}
}
}
}
}
}
...
@@ -238,13 +232,13 @@ public class TrackSelectionParameters implements Parcelable {
...
@@ -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
* {@code null} selects the default track, or the first track if there's no default. The default
* value is {@code null}.
* 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 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 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.
* 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
* 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}
* 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 {
...
@@ -254,7 +248,7 @@ public class TrackSelectionParameters implements Parcelable {
@C
.
RoleFlags
public
final
int
preferredTextRoleFlags
;
@C
.
RoleFlags
public
final
int
preferredTextRoleFlags
;
/**
/**
* Whether a text track with undetermined language should be selected if no track with {@link
* 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
* #preferredTextLanguage
s} is available, or if {@link #preferredTextLanguages
} is unset. The
* default value is {@code false}.
* default value is {@code false}.
*/
*/
public
final
boolean
selectUndeterminedTextLanguage
;
public
final
boolean
selectUndeterminedTextLanguage
;
...
@@ -265,21 +259,15 @@ public class TrackSelectionParameters implements Parcelable {
...
@@ -265,21 +259,15 @@ public class TrackSelectionParameters implements Parcelable {
@C
.
SelectionFlags
public
final
int
disabledTextTrackSelectionFlags
;
@C
.
SelectionFlags
public
final
int
disabledTextTrackSelectionFlags
;
/* package */
TrackSelectionParameters
(
/* package */
TrackSelectionParameters
(
String
[]
preferredAudioLanguage
,
ImmutableList
<
String
>
preferredAudioLanguages
,
String
[]
preferredTextLanguage
,
ImmutableList
<
String
>
preferredTextLanguages
,
@C
.
RoleFlags
int
preferredTextRoleFlags
,
@C
.
RoleFlags
int
preferredTextRoleFlags
,
boolean
selectUndeterminedTextLanguage
,
boolean
selectUndeterminedTextLanguage
,
@C
.
SelectionFlags
int
disabledTextTrackSelectionFlags
)
{
@C
.
SelectionFlags
int
disabledTextTrackSelectionFlags
)
{
// Audio
// Audio
this
.
preferredAudioLanguage
=
new
String
[
preferredAudioLanguage
.
length
];
this
.
preferredAudioLanguages
=
preferredAudioLanguages
;
for
(
int
i
=
0
;
i
<
preferredAudioLanguage
.
length
;
i
++)
{
this
.
preferredAudioLanguage
[
i
]
=
Util
.
normalizeLanguageCode
(
preferredAudioLanguage
[
i
]);
}
// Text
// Text
this
.
preferredTextLanguage
=
new
String
[
preferredAudioLanguage
.
length
];
this
.
preferredTextLanguages
=
preferredTextLanguages
;
for
(
int
i
=
0
;
i
<
preferredTextLanguage
.
length
;
i
++)
{
this
.
preferredTextLanguage
[
i
]
=
Util
.
normalizeLanguageCode
(
preferredTextLanguage
[
i
]);
}
this
.
preferredTextRoleFlags
=
preferredTextRoleFlags
;
this
.
preferredTextRoleFlags
=
preferredTextRoleFlags
;
this
.
selectUndeterminedTextLanguage
=
selectUndeterminedTextLanguage
;
this
.
selectUndeterminedTextLanguage
=
selectUndeterminedTextLanguage
;
this
.
disabledTextTrackSelectionFlags
=
disabledTextTrackSelectionFlags
;
this
.
disabledTextTrackSelectionFlags
=
disabledTextTrackSelectionFlags
;
...
@@ -287,15 +275,17 @@ public class TrackSelectionParameters implements Parcelable {
...
@@ -287,15 +275,17 @@ public class TrackSelectionParameters implements Parcelable {
/* package */
TrackSelectionParameters
(
Parcel
in
)
{
/* package */
TrackSelectionParameters
(
Parcel
in
)
{
int
preferredAudioLanguageSize
=
in
.
readInt
();
int
preferredAudioLanguageSize
=
in
.
readInt
();
this
.
preferredAudioLanguage
=
new
String
[
preferredAudioLanguageSize
];
String
[]
preferredAudioLanguages
=
new
String
[
preferredAudioLanguageSize
];
for
(
int
i
=
0
;
i
<
preferredAudioLanguageSize
;
i
++)
{
for
(
int
i
=
0
;
i
<
preferredAudioLanguageSize
;
i
++)
{
preferredAudioLanguage
[
i
]
=
in
.
readString
();
preferredAudioLanguage
s
[
i
]
=
in
.
readString
();
}
}
this
.
preferredAudioLanguages
=
ImmutableList
.
copyOf
(
preferredAudioLanguages
);
int
preferredTextLanguageSize
=
in
.
readInt
();
int
preferredTextLanguageSize
=
in
.
readInt
();
this
.
preferredTextLanguage
=
new
String
[
preferredTextLanguageSize
];
String
[]
preferredTextLanguages
=
new
String
[
preferredTextLanguageSize
];
for
(
int
i
=
0
;
i
<
preferredTextLanguageSize
;
i
++)
{
for
(
int
i
=
0
;
i
<
preferredTextLanguageSize
;
i
++)
{
preferredTextLanguage
[
i
]
=
in
.
readString
();
preferredTextLanguage
s
[
i
]
=
in
.
readString
();
}
}
this
.
preferredTextLanguages
=
ImmutableList
.
copyOf
(
preferredTextLanguages
);
this
.
preferredTextRoleFlags
=
in
.
readInt
();
this
.
preferredTextRoleFlags
=
in
.
readInt
();
this
.
selectUndeterminedTextLanguage
=
Util
.
readBoolean
(
in
);
this
.
selectUndeterminedTextLanguage
=
Util
.
readBoolean
(
in
);
this
.
disabledTextTrackSelectionFlags
=
in
.
readInt
();
this
.
disabledTextTrackSelectionFlags
=
in
.
readInt
();
...
@@ -316,8 +306,8 @@ public class TrackSelectionParameters implements Parcelable {
...
@@ -316,8 +306,8 @@ public class TrackSelectionParameters implements Parcelable {
return
false
;
return
false
;
}
}
TrackSelectionParameters
other
=
(
TrackSelectionParameters
)
obj
;
TrackSelectionParameters
other
=
(
TrackSelectionParameters
)
obj
;
return
Arrays
.
equals
(
preferredAudioLanguage
,
other
.
preferredAudioLanguage
)
return
preferredAudioLanguages
.
equals
(
other
.
preferredAudioLanguages
)
&&
Arrays
.
equals
(
preferredTextLanguage
,
other
.
preferredTextLanguage
)
&&
preferredTextLanguages
.
equals
(
other
.
preferredTextLanguages
)
&&
preferredTextRoleFlags
==
other
.
preferredTextRoleFlags
&&
preferredTextRoleFlags
==
other
.
preferredTextRoleFlags
&&
selectUndeterminedTextLanguage
==
other
.
selectUndeterminedTextLanguage
&&
selectUndeterminedTextLanguage
==
other
.
selectUndeterminedTextLanguage
&&
disabledTextTrackSelectionFlags
==
other
.
disabledTextTrackSelectionFlags
;
&&
disabledTextTrackSelectionFlags
==
other
.
disabledTextTrackSelectionFlags
;
...
@@ -326,8 +316,8 @@ public class TrackSelectionParameters implements Parcelable {
...
@@ -326,8 +316,8 @@ public class TrackSelectionParameters implements Parcelable {
@Override
@Override
public
int
hashCode
()
{
public
int
hashCode
()
{
int
result
=
1
;
int
result
=
1
;
result
=
31
*
result
+
Arrays
.
hashCode
(
preferredAudioLanguage
);
result
=
31
*
result
+
preferredAudioLanguages
.
hashCode
(
);
result
=
31
*
result
+
Arrays
.
hashCode
(
preferredTextLanguage
);
result
=
31
*
result
+
preferredTextLanguages
.
hashCode
(
);
result
=
31
*
result
+
preferredTextRoleFlags
;
result
=
31
*
result
+
preferredTextRoleFlags
;
result
=
31
*
result
+
(
selectUndeterminedTextLanguage
?
1
:
0
);
result
=
31
*
result
+
(
selectUndeterminedTextLanguage
?
1
:
0
);
result
=
31
*
result
+
disabledTextTrackSelectionFlags
;
result
=
31
*
result
+
disabledTextTrackSelectionFlags
;
...
@@ -343,12 +333,12 @@ public class TrackSelectionParameters implements Parcelable {
...
@@ -343,12 +333,12 @@ public class TrackSelectionParameters implements Parcelable {
@Override
@Override
public
void
writeToParcel
(
Parcel
dest
,
int
flags
)
{
public
void
writeToParcel
(
Parcel
dest
,
int
flags
)
{
dest
.
writeInt
(
preferredAudioLanguage
.
length
);
dest
.
writeInt
(
preferredAudioLanguage
s
.
size
()
);
for
(
String
s
:
preferredAudioLanguage
)
{
for
(
String
s
:
preferredAudioLanguage
s
)
{
dest
.
writeString
(
s
);
dest
.
writeString
(
s
);
}
}
dest
.
writeInt
(
preferredTextLanguage
.
length
);
dest
.
writeInt
(
preferredTextLanguage
s
.
size
()
);
for
(
String
s
:
preferredTextLanguage
)
{
for
(
String
s
:
preferredTextLanguage
s
)
{
dest
.
writeString
(
s
);
dest
.
writeString
(
s
);
}
}
dest
.
writeInt
(
preferredTextRoleFlags
);
dest
.
writeInt
(
preferredTextRoleFlags
);
...
...
library/core/src/test/java/com/google/android/exoplayer2/offline/DownloadHelperTest.java
View file @
7bfde6a5
...
@@ -251,8 +251,8 @@ public class DownloadHelperTest {
...
@@ -251,8 +251,8 @@ public class DownloadHelperTest {
prepareDownloadHelper
(
downloadHelper
);
prepareDownloadHelper
(
downloadHelper
);
DefaultTrackSelector
.
Parameters
parameters
=
DefaultTrackSelector
.
Parameters
parameters
=
new
DefaultTrackSelector
.
ParametersBuilder
(
ApplicationProvider
.
getApplicationContext
())
new
DefaultTrackSelector
.
ParametersBuilder
(
ApplicationProvider
.
getApplicationContext
())
.
setPreferredAudioLanguage
(
"ZH"
)
.
setPreferredAudioLanguage
s
(
"ZH"
)
.
setPreferredTextLanguage
(
"ZH"
)
.
setPreferredTextLanguage
s
(
"ZH"
)
.
setRendererDisabled
(
/* rendererIndex= */
2
,
true
)
.
setRendererDisabled
(
/* rendererIndex= */
2
,
true
)
.
build
();
.
build
();
...
@@ -288,8 +288,8 @@ public class DownloadHelperTest {
...
@@ -288,8 +288,8 @@ public class DownloadHelperTest {
// all video tracks to initial video single track selection.
// all video tracks to initial video single track selection.
DefaultTrackSelector
.
Parameters
parameters
=
DefaultTrackSelector
.
Parameters
parameters
=
new
DefaultTrackSelector
.
ParametersBuilder
(
ApplicationProvider
.
getApplicationContext
())
new
DefaultTrackSelector
.
ParametersBuilder
(
ApplicationProvider
.
getApplicationContext
())
.
setPreferredAudioLanguage
(
"ZH"
)
.
setPreferredAudioLanguage
s
(
"ZH"
)
.
setPreferredTextLanguage
(
"US"
)
.
setPreferredTextLanguage
s
(
"US"
)
.
build
();
.
build
();
// Add only to one period selection to verify second period selection is untouched.
// Add only to one period selection to verify second period selection is untouched.
...
@@ -392,8 +392,8 @@ public class DownloadHelperTest {
...
@@ -392,8 +392,8 @@ public class DownloadHelperTest {
// also renderers without any track groups.
// also renderers without any track groups.
DefaultTrackSelector
.
Parameters
parameters
=
DefaultTrackSelector
.
Parameters
parameters
=
new
DefaultTrackSelector
.
ParametersBuilder
(
ApplicationProvider
.
getApplicationContext
())
new
DefaultTrackSelector
.
ParametersBuilder
(
ApplicationProvider
.
getApplicationContext
())
.
setPreferredAudioLanguage
(
"ZH"
)
.
setPreferredAudioLanguage
s
(
"ZH"
)
.
setPreferredTextLanguage
(
"US"
)
.
setPreferredTextLanguage
s
(
"US"
)
.
build
();
.
build
();
downloadHelper
.
addTrackSelection
(
/* periodIndex= */
0
,
parameters
);
downloadHelper
.
addTrackSelection
(
/* periodIndex= */
0
,
parameters
);
byte
[]
data
=
new
byte
[
10
];
byte
[]
data
=
new
byte
[
10
];
...
...
library/core/src/test/java/com/google/android/exoplayer2/trackselection/DefaultTrackSelectorTest.java
View file @
7bfde6a5
...
@@ -283,7 +283,7 @@ public final class DefaultTrackSelectorTest {
...
@@ -283,7 +283,7 @@ public final class DefaultTrackSelectorTest {
*/
*/
@Test
@Test
public
void
setParameterWithNonDefaultParameterNotifyInvalidationListener
()
{
public
void
setParameterWithNonDefaultParameterNotifyInvalidationListener
()
{
ParametersBuilder
builder
=
defaultParameters
.
buildUpon
().
setPreferredAudioLanguage
(
"eng"
);
ParametersBuilder
builder
=
defaultParameters
.
buildUpon
().
setPreferredAudioLanguage
s
(
"eng"
);
trackSelector
.
setParameters
(
builder
);
trackSelector
.
setParameters
(
builder
);
verify
(
invalidationListener
).
onTrackSelectionsInvalidated
();
verify
(
invalidationListener
).
onTrackSelectionsInvalidated
();
}
}
...
@@ -295,7 +295,7 @@ public final class DefaultTrackSelectorTest {
...
@@ -295,7 +295,7 @@ public final class DefaultTrackSelectorTest {
*/
*/
@Test
@Test
public
void
setParameterWithSameParametersDoesNotNotifyInvalidationListenerAgain
()
{
public
void
setParameterWithSameParametersDoesNotNotifyInvalidationListenerAgain
()
{
ParametersBuilder
builder
=
defaultParameters
.
buildUpon
().
setPreferredAudioLanguage
(
"eng"
);
ParametersBuilder
builder
=
defaultParameters
.
buildUpon
().
setPreferredAudioLanguage
s
(
"eng"
);
trackSelector
.
setParameters
(
builder
);
trackSelector
.
setParameters
(
builder
);
trackSelector
.
setParameters
(
builder
);
trackSelector
.
setParameters
(
builder
);
verify
(
invalidationListener
,
times
(
1
)).
onTrackSelectionsInvalidated
();
verify
(
invalidationListener
,
times
(
1
)).
onTrackSelectionsInvalidated
();
...
@@ -369,7 +369,7 @@ public final class DefaultTrackSelectorTest {
...
@@ -369,7 +369,7 @@ public final class DefaultTrackSelectorTest {
Format
enAudioFormat
=
formatBuilder
.
setLanguage
(
"eng"
).
build
();
Format
enAudioFormat
=
formatBuilder
.
setLanguage
(
"eng"
).
build
();
TrackGroupArray
trackGroups
=
wrapFormats
(
frAudioFormat
,
enAudioFormat
);
TrackGroupArray
trackGroups
=
wrapFormats
(
frAudioFormat
,
enAudioFormat
);
trackSelector
.
setParameters
(
defaultParameters
.
buildUpon
().
setPreferredAudioLanguage
(
"eng"
));
trackSelector
.
setParameters
(
defaultParameters
.
buildUpon
().
setPreferredAudioLanguage
s
(
"eng"
));
TrackSelectorResult
result
=
TrackSelectorResult
result
=
trackSelector
.
selectTracks
(
trackSelector
.
selectTracks
(
new
RendererCapabilities
[]
{
ALL_AUDIO_FORMAT_SUPPORTED_RENDERER_CAPABILITIES
},
new
RendererCapabilities
[]
{
ALL_AUDIO_FORMAT_SUPPORTED_RENDERER_CAPABILITIES
},
...
@@ -391,7 +391,7 @@ public final class DefaultTrackSelectorTest {
...
@@ -391,7 +391,7 @@ public final class DefaultTrackSelectorTest {
Format
enNonDefaultFormat
=
formatBuilder
.
setLanguage
(
"eng"
).
setSelectionFlags
(
0
).
build
();
Format
enNonDefaultFormat
=
formatBuilder
.
setLanguage
(
"eng"
).
setSelectionFlags
(
0
).
build
();
TrackGroupArray
trackGroups
=
wrapFormats
(
frDefaultFormat
,
enNonDefaultFormat
);
TrackGroupArray
trackGroups
=
wrapFormats
(
frDefaultFormat
,
enNonDefaultFormat
);
trackSelector
.
setParameters
(
defaultParameters
.
buildUpon
().
setPreferredAudioLanguage
(
"eng"
));
trackSelector
.
setParameters
(
defaultParameters
.
buildUpon
().
setPreferredAudioLanguage
s
(
"eng"
));
TrackSelectorResult
result
=
TrackSelectorResult
result
=
trackSelector
.
selectTracks
(
trackSelector
.
selectTracks
(
new
RendererCapabilities
[]
{
ALL_AUDIO_FORMAT_SUPPORTED_RENDERER_CAPABILITIES
},
new
RendererCapabilities
[]
{
ALL_AUDIO_FORMAT_SUPPORTED_RENDERER_CAPABILITIES
},
...
@@ -511,7 +511,7 @@ public final class DefaultTrackSelectorTest {
...
@@ -511,7 +511,7 @@ public final class DefaultTrackSelectorTest {
RendererCapabilities
mappedAudioRendererCapabilities
=
RendererCapabilities
mappedAudioRendererCapabilities
=
new
FakeMappedRendererCapabilities
(
C
.
TRACK_TYPE_AUDIO
,
mappedCapabilities
);
new
FakeMappedRendererCapabilities
(
C
.
TRACK_TYPE_AUDIO
,
mappedCapabilities
);
trackSelector
.
setParameters
(
defaultParameters
.
buildUpon
().
setPreferredAudioLanguage
(
"eng"
));
trackSelector
.
setParameters
(
defaultParameters
.
buildUpon
().
setPreferredAudioLanguage
s
(
"eng"
));
TrackSelectorResult
result
=
TrackSelectorResult
result
=
trackSelector
.
selectTracks
(
trackSelector
.
selectTracks
(
new
RendererCapabilities
[]
{
mappedAudioRendererCapabilities
},
new
RendererCapabilities
[]
{
mappedAudioRendererCapabilities
},
...
@@ -546,7 +546,7 @@ public final class DefaultTrackSelectorTest {
...
@@ -546,7 +546,7 @@ public final class DefaultTrackSelectorTest {
RendererCapabilities
mappedAudioRendererCapabilities
=
RendererCapabilities
mappedAudioRendererCapabilities
=
new
FakeMappedRendererCapabilities
(
C
.
TRACK_TYPE_AUDIO
,
mappedCapabilities
);
new
FakeMappedRendererCapabilities
(
C
.
TRACK_TYPE_AUDIO
,
mappedCapabilities
);
trackSelector
.
setParameters
(
defaultParameters
.
buildUpon
().
setPreferredAudioLanguage
(
"eng"
));
trackSelector
.
setParameters
(
defaultParameters
.
buildUpon
().
setPreferredAudioLanguage
s
(
"eng"
));
TrackSelectorResult
result
=
TrackSelectorResult
result
=
trackSelector
.
selectTracks
(
trackSelector
.
selectTracks
(
new
RendererCapabilities
[]
{
mappedAudioRendererCapabilities
},
new
RendererCapabilities
[]
{
mappedAudioRendererCapabilities
},
...
@@ -841,7 +841,7 @@ public final class DefaultTrackSelectorTest {
...
@@ -841,7 +841,7 @@ public final class DefaultTrackSelectorTest {
// There is a preferred language, so a language-matching track flagged as default should
// 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.
// be selected, and the one without forced flag should be preferred.
trackSelector
.
setParameters
(
defaultParameters
.
buildUpon
().
setPreferredTextLanguage
(
"eng"
));
trackSelector
.
setParameters
(
defaultParameters
.
buildUpon
().
setPreferredTextLanguage
s
(
"eng"
));
result
=
trackSelector
.
selectTracks
(
textRendererCapabilities
,
trackGroups
,
periodId
,
TIMELINE
);
result
=
trackSelector
.
selectTracks
(
textRendererCapabilities
,
trackGroups
,
periodId
,
TIMELINE
);
assertFixedSelection
(
result
.
selections
.
get
(
0
),
trackGroups
,
defaultOnly
);
assertFixedSelection
(
result
.
selections
.
get
(
0
),
trackGroups
,
defaultOnly
);
...
@@ -929,7 +929,7 @@ public final class DefaultTrackSelectorTest {
...
@@ -929,7 +929,7 @@ public final class DefaultTrackSelectorTest {
result
=
trackSelector
.
selectTracks
(
textRendererCapabilites
,
trackGroups
,
periodId
,
TIMELINE
);
result
=
trackSelector
.
selectTracks
(
textRendererCapabilites
,
trackGroups
,
periodId
,
TIMELINE
);
assertFixedSelection
(
result
.
selections
.
get
(
0
),
trackGroups
,
undeterminedUnd
);
assertFixedSelection
(
result
.
selections
.
get
(
0
),
trackGroups
,
undeterminedUnd
);
ParametersBuilder
builder
=
defaultParameters
.
buildUpon
().
setPreferredTextLanguage
(
"spa"
);
ParametersBuilder
builder
=
defaultParameters
.
buildUpon
().
setPreferredTextLanguage
s
(
"spa"
);
trackSelector
.
setParameters
(
builder
);
trackSelector
.
setParameters
(
builder
);
result
=
trackSelector
.
selectTracks
(
textRendererCapabilites
,
trackGroups
,
periodId
,
TIMELINE
);
result
=
trackSelector
.
selectTracks
(
textRendererCapabilites
,
trackGroups
,
periodId
,
TIMELINE
);
assertFixedSelection
(
result
.
selections
.
get
(
0
),
trackGroups
,
spanish
);
assertFixedSelection
(
result
.
selections
.
get
(
0
),
trackGroups
,
spanish
);
...
@@ -984,13 +984,13 @@ public final class DefaultTrackSelectorTest {
...
@@ -984,13 +984,13 @@ public final class DefaultTrackSelectorTest {
assertNoSelection
(
result
.
selections
.
get
(
1
));
assertNoSelection
(
result
.
selections
.
get
(
1
));
// Explicit language preference for english. First renderer should be used.
// Explicit language preference for english. First renderer should be used.
trackSelector
.
setParameters
(
defaultParameters
.
buildUpon
().
setPreferredTextLanguage
(
"en"
));
trackSelector
.
setParameters
(
defaultParameters
.
buildUpon
().
setPreferredTextLanguage
s
(
"en"
));
result
=
trackSelector
.
selectTracks
(
rendererCapabilities
,
trackGroups
,
periodId
,
TIMELINE
);
result
=
trackSelector
.
selectTracks
(
rendererCapabilities
,
trackGroups
,
periodId
,
TIMELINE
);
assertFixedSelection
(
result
.
selections
.
get
(
0
),
trackGroups
,
english
);
assertFixedSelection
(
result
.
selections
.
get
(
0
),
trackGroups
,
english
);
assertNoSelection
(
result
.
selections
.
get
(
1
));
assertNoSelection
(
result
.
selections
.
get
(
1
));
// Explicit language preference for German. Second renderer should be used.
// Explicit language preference for German. Second renderer should be used.
trackSelector
.
setParameters
(
defaultParameters
.
buildUpon
().
setPreferredTextLanguage
(
"de"
));
trackSelector
.
setParameters
(
defaultParameters
.
buildUpon
().
setPreferredTextLanguage
s
(
"de"
));
result
=
trackSelector
.
selectTracks
(
rendererCapabilities
,
trackGroups
,
periodId
,
TIMELINE
);
result
=
trackSelector
.
selectTracks
(
rendererCapabilities
,
trackGroups
,
periodId
,
TIMELINE
);
assertNoSelection
(
result
.
selections
.
get
(
0
));
assertNoSelection
(
result
.
selections
.
get
(
0
));
assertFixedSelection
(
result
.
selections
.
get
(
1
),
trackGroups
,
german
);
assertFixedSelection
(
result
.
selections
.
get
(
1
),
trackGroups
,
german
);
...
@@ -1290,13 +1290,13 @@ public final class DefaultTrackSelectorTest {
...
@@ -1290,13 +1290,13 @@ public final class DefaultTrackSelectorTest {
assertNoSelection
(
result
.
selections
.
get
(
1
));
assertNoSelection
(
result
.
selections
.
get
(
1
));
// Explicit language preference for english. First renderer should be used.
// Explicit language preference for english. First renderer should be used.
trackSelector
.
setParameters
(
defaultParameters
.
buildUpon
().
setPreferredAudioLanguage
(
"en"
));
trackSelector
.
setParameters
(
defaultParameters
.
buildUpon
().
setPreferredAudioLanguage
s
(
"en"
));
result
=
trackSelector
.
selectTracks
(
rendererCapabilities
,
trackGroups
,
periodId
,
TIMELINE
);
result
=
trackSelector
.
selectTracks
(
rendererCapabilities
,
trackGroups
,
periodId
,
TIMELINE
);
assertFixedSelection
(
result
.
selections
.
get
(
0
),
trackGroups
,
english
);
assertFixedSelection
(
result
.
selections
.
get
(
0
),
trackGroups
,
english
);
assertNoSelection
(
result
.
selections
.
get
(
1
));
assertNoSelection
(
result
.
selections
.
get
(
1
));
// Explicit language preference for German. Second renderer should be used.
// Explicit language preference for German. Second renderer should be used.
trackSelector
.
setParameters
(
defaultParameters
.
buildUpon
().
setPreferredAudioLanguage
(
"de"
));
trackSelector
.
setParameters
(
defaultParameters
.
buildUpon
().
setPreferredAudioLanguage
s
(
"de"
));
result
=
trackSelector
.
selectTracks
(
rendererCapabilities
,
trackGroups
,
periodId
,
TIMELINE
);
result
=
trackSelector
.
selectTracks
(
rendererCapabilities
,
trackGroups
,
periodId
,
TIMELINE
);
assertNoSelection
(
result
.
selections
.
get
(
0
));
assertNoSelection
(
result
.
selections
.
get
(
0
));
assertFixedSelection
(
result
.
selections
.
get
(
1
),
trackGroups
,
german
);
assertFixedSelection
(
result
.
selections
.
get
(
1
),
trackGroups
,
german
);
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment