Merge pull request #9767 from TiVo:p-nearest-sync-track-index-bug

PiperOrigin-RevId: 416289790
This commit is contained in:
Ian Baker 2021-12-14 16:15:36 +00:00
commit 3dee8e4993
2 changed files with 16 additions and 6 deletions

View file

@ -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

View file

@ -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(),