Skip to content

Commit

Permalink
Re-align live subtitle playlists with main when it does not overlap w…
Browse files Browse the repository at this point in the history
…ith last refresh

Resolves #3987
  • Loading branch information
Rob Walch committed Jun 3, 2021
1 parent faf4472 commit e677e12
Showing 1 changed file with 11 additions and 4 deletions.
15 changes: 11 additions & 4 deletions src/controller/subtitle-stream-controller.ts
Expand Up @@ -245,18 +245,25 @@ export class SubtitleStreamController
if (newDetails.deltaUpdateFailed) {
return;
}
const mainDetails = this.mainDetails;
const mainSlidingStartFragment = mainDetails
? mainDetails.fragments[0]
: null;
if (!track.details) {
const mainDetails = this.mainDetails;
if (mainDetails) {
if (newDetails.hasProgramDateTime && mainDetails.hasProgramDateTime) {
alignPDT(newDetails, mainDetails);
} else if (mainDetails.fragments[0]) {
} else if (mainSlidingStartFragment) {
// line up live playlist with main so that fragments in range are loaded
addSliding(newDetails, mainDetails.fragments[0].start);
addSliding(newDetails, mainSlidingStartFragment.start);
}
}
} else {
this.alignPlaylists(newDetails, track.details);
const sliding = this.alignPlaylists(newDetails, track.details);
if (sliding === 0 && mainSlidingStartFragment) {
// realign with main when there is no overlap with last refresh
addSliding(newDetails, mainSlidingStartFragment.start);
}
}
}
track.details = newDetails;
Expand Down

0 comments on commit e677e12

Please sign in to comment.