diff --git a/library/hls/src/main/java/com/google/android/exoplayer2/source/hls/HlsMediaPeriod.java b/library/hls/src/main/java/com/google/android/exoplayer2/source/hls/HlsMediaPeriod.java index 8b57cb7aa6..98402b9b45 100644 --- a/library/hls/src/main/java/com/google/android/exoplayer2/source/hls/HlsMediaPeriod.java +++ b/library/hls/src/main/java/com/google/android/exoplayer2/source/hls/HlsMediaPeriod.java @@ -635,10 +635,8 @@ public final class HlsMediaPeriod implements MediaPeriod, HlsSampleStreamWrapper /* isPrimaryTrackInVariant= */ false))); } List ccFormats = masterPlaylist.muxedCaptionFormats; - if (ccFormats != null) { - for (int i = 0; i < ccFormats.size(); i++) { - muxedTrackGroups.add(new TrackGroup(ccFormats.get(i))); - } + for (int i = 0; i < ccFormats.size(); i++) { + muxedTrackGroups.add(new TrackGroup(ccFormats.get(i))); } } else if (variantsContainAudioCodecs) { // Variants only contain audio. diff --git a/library/hls/src/main/java/com/google/android/exoplayer2/source/hls/playlist/HlsMasterPlaylist.java b/library/hls/src/main/java/com/google/android/exoplayer2/source/hls/playlist/HlsMasterPlaylist.java index 1660324a34..1ac2acad94 100644 --- a/library/hls/src/main/java/com/google/android/exoplayer2/source/hls/playlist/HlsMasterPlaylist.java +++ b/library/hls/src/main/java/com/google/android/exoplayer2/source/hls/playlist/HlsMasterPlaylist.java @@ -177,8 +177,7 @@ public final class HlsMasterPlaylist extends HlsPlaylist { @Nullable public final Format muxedAudioFormat; /** * The format of the closed captions declared by the playlist. May be empty if the playlist - * explicitly declares no captions are available, or null if the playlist does not declare any - * captions information. + * doesn't declare any caption information or explicitly declares no captions are available. */ public final List muxedCaptionFormats; /** Contains variable definitions, as defined by the #EXT-X-DEFINE tag. */ @@ -223,8 +222,7 @@ public final class HlsMasterPlaylist extends HlsPlaylist { this.subtitles = Collections.unmodifiableList(subtitles); this.closedCaptions = Collections.unmodifiableList(closedCaptions); this.muxedAudioFormat = muxedAudioFormat; - this.muxedCaptionFormats = muxedCaptionFormats != null - ? Collections.unmodifiableList(muxedCaptionFormats) : null; + this.muxedCaptionFormats = Collections.unmodifiableList(muxedCaptionFormats); this.variableDefinitions = Collections.unmodifiableMap(variableDefinitions); this.sessionKeyDrmInitData = Collections.unmodifiableList(sessionKeyDrmInitData); } @@ -266,7 +264,7 @@ public final class HlsMasterPlaylist extends HlsPlaylist { /* subtitles= */ Collections.emptyList(), /* closedCaptions= */ Collections.emptyList(), /* muxedAudioFormat= */ null, - /* muxedCaptionFormats= */ null, + /* muxedCaptionFormats= */ Collections.emptyList(), /* hasIndependentSegments= */ false, /* variableDefinitions= */ Collections.emptyMap(), /* sessionKeyDrmInitData= */ Collections.emptyList()); diff --git a/library/hls/src/main/java/com/google/android/exoplayer2/source/hls/playlist/HlsPlaylistParser.java b/library/hls/src/main/java/com/google/android/exoplayer2/source/hls/playlist/HlsPlaylistParser.java index 21c29c6d87..e6b57c64dd 100644 --- a/library/hls/src/main/java/com/google/android/exoplayer2/source/hls/playlist/HlsPlaylistParser.java +++ b/library/hls/src/main/java/com/google/android/exoplayer2/source/hls/playlist/HlsPlaylistParser.java @@ -267,7 +267,7 @@ public final class HlsPlaylistParser implements ParsingLoadable.Parser sessionKeyDrmInitData = new ArrayList<>(); ArrayList tags = new ArrayList<>(); Format muxedAudioFormat = null; - List muxedCaptionFormats = null; + List muxedCaptionFormats = new ArrayList<>(); boolean noClosedCaptions = false; boolean hasIndependentSegmentsTag = false; @@ -494,9 +494,6 @@ public final class HlsPlaylistParser implements ParsingLoadable.Parser(); - } muxedCaptionFormats.add( Format.createTextContainerFormat( /* id= */ formatId, @@ -518,7 +515,7 @@ public final class HlsPlaylistParser implements ParsingLoadable.Parser variants = masterPlaylist.variants; assertThat(variants).hasSize(5); - assertThat(masterPlaylist.muxedCaptionFormats).isNull(); + assertThat(masterPlaylist.muxedCaptionFormats).isEmpty(); assertThat(variants.get(0).format.bitrate).isEqualTo(1280000); assertThat(variants.get(0).format.codecs).isEqualTo("mp4a.40.2,avc1.66.30"); diff --git a/library/hls/src/test/java/com/google/android/exoplayer2/source/hls/playlist/HlsMediaPlaylistParserTest.java b/library/hls/src/test/java/com/google/android/exoplayer2/source/hls/playlist/HlsMediaPlaylistParserTest.java index 3fd67b294a..ba25d6954a 100644 --- a/library/hls/src/test/java/com/google/android/exoplayer2/source/hls/playlist/HlsMediaPlaylistParserTest.java +++ b/library/hls/src/test/java/com/google/android/exoplayer2/source/hls/playlist/HlsMediaPlaylistParserTest.java @@ -456,7 +456,7 @@ public class HlsMediaPlaylistParserTest { /* subtitles= */ Collections.emptyList(), /* closedCaptions= */ Collections.emptyList(), /* muxedAudioFormat= */ null, - /* muxedCaptionFormats= */ null, + /* muxedCaptionFormats= */ Collections.emptyList(), /* hasIndependentSegments= */ true, /* variableDefinitions= */ Collections.emptyMap(), /* sessionKeyDrmInitData= */ Collections.emptyList());