@@ -32,11 +32,10 @@ class SabrSessionPumpLoopTest {
3232 every { session.getCachedSegment(request) } returns null
3333 every { streamState.getMinBufferedEndMs() } returns 329_492L
3434 every { streamState.getSegmentStartMs(audio, 35 ) } returns 340_000L
35+ every { streamState.getSegmentEndMs(audio, 35 ) } returns 349_476L
3536 every { streamState.setPlayerTimeMs(any()) } returns Unit
36- every { streamState.setLastOnlyRange(audio, true ) } returns Unit
37- every { streamState.setLastOnlyRange(audio, false ) } returns Unit
38- every { streamState.setFullyBuffered(video, true ) } returns Unit
39- every { streamState.setFullyBuffered(video, false ) } returns Unit
37+ every { streamState.setBufferedRangesOverride(any()) } returns Unit
38+ every { streamState.setBufferedRangesOverride(null ) } returns Unit
4039 every { streamState.setSelectVideoFormatBeforeAudio(any()) } returns Unit
4140 every { session.prepareForForwardJump(request) } returns Unit
4241 every { session.pumpOnceStreamingUntilCached(any(), request) } returns 0
@@ -51,11 +50,13 @@ class SabrSessionPumpLoopTest {
5150 verify(exactly = 1 ) { session.pumpOnceStreamingUntilCached(any(), request) }
5251 verifyOrder {
5352 streamState.setSelectVideoFormatBeforeAudio(true )
54- streamState.setLastOnlyRange(audio, true )
55- streamState.setFullyBuffered(video, true )
53+ streamState.setBufferedRangesOverride(match { ranges ->
54+ ranges.size == 2 &&
55+ ranges[0 ].summarize() == " itag=247:seq=2147483647-2147483647:time=0+2147483647:timescale=1000" &&
56+ ranges[1 ].summarize() == " itag=140:seq=35-35:time=0+9476:timescale=1000"
57+ })
5658 session.pumpOnceStreamingUntilCached(any(), request)
57- streamState.setFullyBuffered(video, false )
58- streamState.setLastOnlyRange(audio, false )
59+ streamState.setBufferedRangesOverride(null )
5960 streamState.setActiveTrackTypes(true , true )
6061 }
6162 } finally {
@@ -82,6 +83,13 @@ class SabrSessionPumpLoopTest {
8283 every { format.itag } returns itag
8384 every { format.isAudio } returns isAudio
8485 every { format.bitrate } returns if (isAudio) 128_000 else 2_000_000
86+ every { format.lastModified } returns if (isAudio) AUDIO_LAST_MODIFIED else VIDEO_LAST_MODIFIED
87+ every { format.xtags } returns null
8588 return format
8689 }
90+
91+ private companion object {
92+ const val AUDIO_LAST_MODIFIED = 1_765_814_035_331_078L
93+ const val VIDEO_LAST_MODIFIED = 1_726_365_891_623_401L
94+ }
8795}
0 commit comments