diff --git a/library/hls/src/main/java/com/google/android/exoplayer2/source/hls/HlsChunkSource.java b/library/hls/src/main/java/com/google/android/exoplayer2/source/hls/HlsChunkSource.java index 42fa9bafb4..ba509b3005 100644 --- a/library/hls/src/main/java/com/google/android/exoplayer2/source/hls/HlsChunkSource.java +++ b/library/hls/src/main/java/com/google/android/exoplayer2/source/hls/HlsChunkSource.java @@ -255,7 +255,8 @@ import org.checkerframework.checker.nullness.qual.MonotonicNonNull; HlsMediaPlaylist mediaPlaylist = selectedIndex < playlistUrls.length && selectedIndex != C.INDEX_UNSET ? playlistTracker.getPlaylistSnapshot( - playlistUrls[selectedIndex], /* isForPlayback= */ true) + playlistUrls[trackSelection.getSelectedIndexInTrackGroup()], + /* isForPlayback= */ true) : null; if (mediaPlaylist == null diff --git a/library/hls/src/test/java/com/google/android/exoplayer2/source/hls/HlsChunkSourceTest.java b/library/hls/src/test/java/com/google/android/exoplayer2/source/hls/HlsChunkSourceTest.java index b6e6d965da..ac718f747b 100644 --- a/library/hls/src/test/java/com/google/android/exoplayer2/source/hls/HlsChunkSourceTest.java +++ b/library/hls/src/test/java/com/google/android/exoplayer2/source/hls/HlsChunkSourceTest.java @@ -23,6 +23,7 @@ import static org.mockito.Mockito.when; import android.net.Uri; import androidx.test.core.app.ApplicationProvider; import androidx.test.ext.junit.runners.AndroidJUnit4; +import com.google.android.exoplayer2.C; import com.google.android.exoplayer2.Format; import com.google.android.exoplayer2.SeekParameters; import com.google.android.exoplayer2.analytics.PlayerId; @@ -32,6 +33,7 @@ import com.google.android.exoplayer2.source.hls.playlist.HlsPlaylistTracker; import com.google.android.exoplayer2.testutil.ExoPlayerTestRunner; import com.google.android.exoplayer2.testutil.FakeDataSource; import com.google.android.exoplayer2.testutil.TestUtil; +import com.google.android.exoplayer2.util.MimeTypes; import java.io.IOException; import java.io.InputStream; import org.junit.Before; @@ -50,8 +52,15 @@ public class HlsChunkSourceTest { private static final String PLAYLIST_EMPTY = "media/m3u8/media_playlist_empty"; private static final Uri PLAYLIST_URI = Uri.parse("http://example.com/"); private static final long PLAYLIST_START_PERIOD_OFFSET_US = 8_000_000L; - - private final HlsExtractorFactory mockExtractorFactory = HlsExtractorFactory.DEFAULT; + private static final Uri IFRAME_URI = Uri.parse("http://example.com/iframe"); + private static final Format IFRAME_FORMAT = + new Format.Builder() + .setSampleMimeType(MimeTypes.VIDEO_H264) + .setAverageBitrate(30_000) + .setWidth(1280) + .setHeight(720) + .setRoleFlags(C.ROLE_FLAG_TRICK_PLAY) + .build(); @Mock private HlsPlaylistTracker mockPlaylistTracker; private HlsChunkSource testChunkSource; @@ -70,10 +79,10 @@ public class HlsChunkSourceTest { testChunkSource = new HlsChunkSource( - mockExtractorFactory, + HlsExtractorFactory.DEFAULT, mockPlaylistTracker, - new Uri[] {PLAYLIST_URI}, - new Format[] {ExoPlayerTestRunner.VIDEO_FORMAT}, + new Uri[] {IFRAME_URI, PLAYLIST_URI}, + new Format[] {IFRAME_FORMAT, ExoPlayerTestRunner.VIDEO_FORMAT}, new DefaultHlsDataSourceFactory(new FakeDataSource.Factory()), /* mediaTransferListener= */ null, new TimestampAdjusterProvider(),