@@ -1011,6 +1011,74 @@ public void handleContentTimelineChanged_livePlaylistWithoutInterstitials_hasLiv
1011
1011
.inOrder ();
1012
1012
}
1013
1013
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,\n main0.0.ts\n "
1035
+ + "#EXTINF:6,\n main1.0.ts\n "
1036
+ + "#EXTINF:6,\n main2.0.ts\n "
1037
+ + "#EXTINF:6,\n main3.0.ts\n "
1038
+ + "#EXTINF:6,\n main4.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,\n main1.0.ts\n " // pre-roll queue point
1059
+ + "#EXTINF:6,\n main2.0.ts\n "
1060
+ + "#EXTINF:6,\n main3.0.ts\n "
1061
+ + "#EXTINF:6,\n main4.0.ts\n "
1062
+ + "#EXTINF:6,\n main5.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
+
1014
1082
@ Test
1015
1083
public void
1016
1084
handleContentTimelineChanged_livePlaylistUpdateNewAdAfterPlayedAd_correctAdPlaybackStateUpdates ()
0 commit comments