Skip to content

Commit a7c727e

Browse files
marcbaechingercopybara-github
authored andcommitted
Add test case for live pre-roll
PiperOrigin-RevId: 735736616
1 parent 593c6fa commit a7c727e

File tree

1 file changed

+68
-0
lines changed

1 file changed

+68
-0
lines changed

libraries/exoplayer_hls/src/test/java/androidx/media3/exoplayer/hls/HlsInterstitialsAdsLoaderTest.java

Lines changed: 68 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1011,6 +1011,74 @@ public void handleContentTimelineChanged_livePlaylistWithoutInterstitials_hasLiv
10111011
.inOrder();
10121012
}
10131013

1014+
@Test
1015+
public void
1016+
handleContentTimelineChanged_livePlaylistUpdatesPreRollAndPostRoll_addPreRollIgnorePostRoll()
1017+
throws IOException {
1018+
assertThat(
1019+
callHandleContentTimelineChangedForLiveAndCaptureAdPlaybackStates(
1020+
adsLoader,
1021+
/* startAdsLoader= */ true,
1022+
/* windowOffsetInFirstPeriodUs= */ 0L,
1023+
"#EXTM3U\n"
1024+
+ "#EXT-X-TARGETDURATION:6\n"
1025+
+ "#EXT-X-MEDIA-SEQUENCE:0\n"
1026+
+ "#EXT-X-DATERANGE:"
1027+
+ "ID=\"ad0-0\","
1028+
+ "CLASS=\"com.apple.hls.interstitial\","
1029+
+ "START-DATE=\"2020-01-02T22:00:00.000Z\","
1030+
+ "CUE=\"POST\","
1031+
+ "X-ASSET-URI=\"http://example.com/media-0-0.m3u8\""
1032+
+ "\n"
1033+
+ "#EXT-X-PROGRAM-DATE-TIME:2020-01-02T21:00:00.000Z\n"
1034+
+ "#EXTINF:6,\nmain0.0.ts\n"
1035+
+ "#EXTINF:6,\nmain1.0.ts\n"
1036+
+ "#EXTINF:6,\nmain2.0.ts\n"
1037+
+ "#EXTINF:6,\nmain3.0.ts\n"
1038+
+ "#EXTINF:6,\nmain4.0.ts\n"
1039+
+ "\n",
1040+
"#EXTM3U\n"
1041+
+ "#EXT-X-TARGETDURATION:6\n"
1042+
+ "#EXT-X-MEDIA-SEQUENCE:0\n"
1043+
+ "#EXT-X-DATERANGE:"
1044+
+ "ID=\"ad0-0\","
1045+
+ "CLASS=\"com.apple.hls.interstitial\","
1046+
+ "START-DATE=\"2020-01-02T22:00:00.000Z\","
1047+
+ "CUE=\"POST\","
1048+
+ "X-ASSET-URI=\"http://example.com/media-0-0.m3u8\""
1049+
+ "\n"
1050+
+ "#EXT-X-DATERANGE:"
1051+
+ "ID=\"ad1-0\","
1052+
+ "CLASS=\"com.apple.hls.interstitial\","
1053+
+ "START-DATE=\"2020-01-02T20:00:00.000Z\","
1054+
+ "CUE=\"PRE\","
1055+
+ "X-ASSET-URI=\"http://example.com/media-1-0.m3u8\""
1056+
+ "\n"
1057+
+ "#EXT-X-PROGRAM-DATE-TIME:2020-01-02T21:00:06.000Z\n"
1058+
+ "#EXTINF:6,\nmain1.0.ts\n" // pre-roll queue point
1059+
+ "#EXTINF:6,\nmain2.0.ts\n"
1060+
+ "#EXTINF:6,\nmain3.0.ts\n"
1061+
+ "#EXTINF:6,\nmain4.0.ts\n"
1062+
+ "#EXTINF:6,\nmain5.0.ts\n"
1063+
+ "\n"))
1064+
.containsExactly(
1065+
new AdPlaybackState("adsId")
1066+
.withLivePostrollPlaceholderAppended(/* isServerSideInserted= */ false),
1067+
new AdPlaybackState("adsId", 6_000_000L)
1068+
.withAdResumePositionUs(0)
1069+
.withAdCount(/* adGroupIndex= */ 0, /* adCount= */ 1)
1070+
.withAdId(/* adGroupIndex= */ 0, /* adIndexInAdGroup= */ 0, "ad1-0")
1071+
.withAvailableAdMediaItem(
1072+
/* adGroupIndex= */ 0,
1073+
/* adIndexInAdGroup= */ 0,
1074+
new MediaItem.Builder()
1075+
.setUri("http://example.com/media-1-0.m3u8")
1076+
.setMimeType(MimeTypes.APPLICATION_M3U8)
1077+
.build())
1078+
.withLivePostrollPlaceholderAppended(/* isServerSideInserted= */ false))
1079+
.inOrder();
1080+
}
1081+
10141082
@Test
10151083
public void
10161084
handleContentTimelineChanged_livePlaylistUpdateNewAdAfterPlayedAd_correctAdPlaybackStateUpdates()

0 commit comments

Comments
 (0)