diff --git a/library/core/src/main/java/com/google/android/exoplayer2/C.java b/library/core/src/main/java/com/google/android/exoplayer2/C.java index 8810b51000..d163fabd60 100644 --- a/library/core/src/main/java/com/google/android/exoplayer2/C.java +++ b/library/core/src/main/java/com/google/android/exoplayer2/C.java @@ -536,9 +536,7 @@ public final class C { */ public static final int SELECTION_FLAG_AUTOSELECT = 1 << 2; // 4 - /** - * Represents an undetermined language as an ISO 639 alpha-3 language code. - */ + /** Represents an undetermined language as an ISO 639-2 language code. */ public static final String LANGUAGE_UNDETERMINED = "und"; /** diff --git a/library/core/src/main/java/com/google/android/exoplayer2/Format.java b/library/core/src/main/java/com/google/android/exoplayer2/Format.java index 6c54c07cde..c3028e153c 100644 --- a/library/core/src/main/java/com/google/android/exoplayer2/Format.java +++ b/library/core/src/main/java/com/google/android/exoplayer2/Format.java @@ -159,7 +159,7 @@ public final class Format implements Parcelable { @C.SelectionFlags public final int selectionFlags; - /** The language, or null if unknown or not applicable. */ + /** The language as ISO 639-2/T three-letter code, or null if unknown or not applicable. */ public final @Nullable String language; /** @@ -932,7 +932,7 @@ public final class Format implements Parcelable { this.encoderDelay = encoderDelay == Format.NO_VALUE ? 0 : encoderDelay; this.encoderPadding = encoderPadding == Format.NO_VALUE ? 0 : encoderPadding; this.selectionFlags = selectionFlags; - this.language = language; + this.language = Util.normalizeLanguageCode(language); this.accessibilityChannel = accessibilityChannel; this.subsampleOffsetUs = subsampleOffsetUs; this.initializationData = diff --git a/library/core/src/main/java/com/google/android/exoplayer2/extractor/ts/TsPayloadReader.java b/library/core/src/main/java/com/google/android/exoplayer2/extractor/ts/TsPayloadReader.java index a034b05696..9289ba4d2e 100644 --- a/library/core/src/main/java/com/google/android/exoplayer2/extractor/ts/TsPayloadReader.java +++ b/library/core/src/main/java/com/google/android/exoplayer2/extractor/ts/TsPayloadReader.java @@ -100,7 +100,7 @@ public interface TsPayloadReader { public final byte[] initializationData; /** - * @param language The ISO 639-2 three character language. + * @param language The ISO 639-2 three-letter language code. * @param type The subtitling type. * @param initializationData The composition and ancillary page ids. */ diff --git a/library/core/src/main/java/com/google/android/exoplayer2/offline/DownloadHelper.java b/library/core/src/main/java/com/google/android/exoplayer2/offline/DownloadHelper.java index 21e1858bdd..25c4eca5eb 100644 --- a/library/core/src/main/java/com/google/android/exoplayer2/offline/DownloadHelper.java +++ b/library/core/src/main/java/com/google/android/exoplayer2/offline/DownloadHelper.java @@ -495,7 +495,7 @@ public final class DownloadHelper { * used instead. Must not be called until after preparation completes. * * @param languages A list of audio languages for which tracks should be added to the download - * selection, as ISO 639-2/T tags. + * selection, as ISO 639-1 two-letter or ISO 639-2 three-letter codes. */ public void addAudioLanguagesToSelection(String... languages) { assertPreparedWithMedia(); @@ -524,7 +524,7 @@ public final class DownloadHelper { * selected for downloading if no track with one of the specified {@code languages} is * available. * @param languages A list of text languages for which tracks should be added to the download - * selection, as ISO 639-2/T tags. + * selection, as ISO 639-1 two-letter or ISO 639-2 three-letter codes. */ public void addTextLanguagesToSelection( boolean selectUndeterminedTextLanguage, String... languages) { diff --git a/library/core/src/main/java/com/google/android/exoplayer2/trackselection/DefaultTrackSelector.java b/library/core/src/main/java/com/google/android/exoplayer2/trackselection/DefaultTrackSelector.java index 06b11b3d67..28242167ad 100644 --- a/library/core/src/main/java/com/google/android/exoplayer2/trackselection/DefaultTrackSelector.java +++ b/library/core/src/main/java/com/google/android/exoplayer2/trackselection/DefaultTrackSelector.java @@ -365,6 +365,8 @@ public class DefaultTrackSelector extends MappingTrackSelector { /** * See {@link Parameters#preferredAudioLanguage}. * + * @param preferredAudioLanguage Preferred audio language as an ISO 639-1 two-letter or ISO + * 639-2 three-letter code. * @return This builder. */ public ParametersBuilder setPreferredAudioLanguage(String preferredAudioLanguage) { @@ -430,6 +432,8 @@ public class DefaultTrackSelector extends MappingTrackSelector { /** * See {@link Parameters#preferredTextLanguage}. * + * @param preferredTextLanguage Preferred text language as an ISO 639-1 two-letter or ISO 639-2 + * three-letter code. * @return This builder. */ public ParametersBuilder setPreferredTextLanguage(String preferredTextLanguage) { @@ -2313,8 +2317,7 @@ public class DefaultTrackSelector extends MappingTrackSelector { * null. */ protected static boolean formatHasLanguage(Format format, @Nullable String language) { - return language != null - && TextUtils.equals(language, Util.normalizeLanguageCode(format.language)); + return language != null && TextUtils.equals(language, format.language); } private static List getViewportFilteredTrackIndices(TrackGroup group, int viewportWidth, diff --git a/library/core/src/main/java/com/google/android/exoplayer2/util/Util.java b/library/core/src/main/java/com/google/android/exoplayer2/util/Util.java index 34237dddf6..b9d78f8af2 100644 --- a/library/core/src/main/java/com/google/android/exoplayer2/util/Util.java +++ b/library/core/src/main/java/com/google/android/exoplayer2/util/Util.java @@ -418,9 +418,10 @@ public final class Util { } /** - * Returns a normalized RFC 639-2/T code for {@code language}. + * Returns a normalized ISO 639-2/T code for {@code language}. * - * @param language A case-insensitive ISO 639 alpha-2 or alpha-3 language code. + * @param language A case-insensitive ISO 639-1 two-letter or ISO 639-2 three-letter language + * code. * @return The all-lowercase normalized code, or null if the input was null, or {@code * language.toLowerCase()} if the language could not be normalized. */ diff --git a/library/hls/src/test/java/com/google/android/exoplayer2/source/hls/playlist/HlsMasterPlaylistParserTest.java b/library/hls/src/test/java/com/google/android/exoplayer2/source/hls/playlist/HlsMasterPlaylistParserTest.java index 8b69ba0db2..80a9bd3eab 100644 --- a/library/hls/src/test/java/com/google/android/exoplayer2/source/hls/playlist/HlsMasterPlaylistParserTest.java +++ b/library/hls/src/test/java/com/google/android/exoplayer2/source/hls/playlist/HlsMasterPlaylistParserTest.java @@ -225,7 +225,7 @@ public class HlsMasterPlaylistParserTest { Format closedCaptionFormat = playlist.muxedCaptionFormats.get(0); assertThat(closedCaptionFormat.sampleMimeType).isEqualTo(MimeTypes.APPLICATION_CEA708); assertThat(closedCaptionFormat.accessibilityChannel).isEqualTo(4); - assertThat(closedCaptionFormat.language).isEqualTo("es"); + assertThat(closedCaptionFormat.language).isEqualTo("spa"); } @Test