Skip to content

Commit

Permalink
Merge pull request #3967 from video-dev/task/live-playlist-sliding-logs
Browse files Browse the repository at this point in the history
Replace live playlist sliding warnings with improved logging
  • Loading branch information
robwalch committed May 29, 2021
2 parents 90321c4 + 183788f commit 35bc1d7
Showing 1 changed file with 21 additions and 17 deletions.
38 changes: 21 additions & 17 deletions src/controller/base-stream-controller.ts
Expand Up @@ -1086,29 +1086,33 @@ export default class BaseStreamController
details: LevelDetails,
previousDetails?: LevelDetails
): number {
const { levels, levelLastLoaded } = this;
const { levels, levelLastLoaded, fragPrevious } = this;
const lastLevel: Level | null =
levelLastLoaded !== null ? levels![levelLastLoaded] : null;

// FIXME: If not for `shouldAlignOnDiscontinuities` requiring fragPrevious.cc,
// this could all go in level-helper mergeDetails()
let sliding = 0;
if (previousDetails && details.fragments.length > 0) {
sliding = details.fragments[0].start;
if (details.alignedSliding && Number.isFinite(sliding)) {
this.log(`Live playlist sliding:${sliding.toFixed(3)}`);
} else if (!sliding) {
this.warn(
`[${this.constructor.name}] Live playlist - outdated PTS, unknown sliding`
);
alignStream(this.fragPrevious, lastLevel, details);
}
} else {
this.log('Live playlist - first load, unknown sliding');
alignStream(this.fragPrevious, lastLevel, details);
const length = details.fragments.length;
if (!length) {
this.warn(`No fragments in live playlist`);
return 0;
}

return sliding;
const slidingStart = details.fragments[0].start;
const firstLevelLoad = !previousDetails;
const aligned = details.alignedSliding && Number.isFinite(slidingStart);
if (firstLevelLoad || (!aligned && !slidingStart)) {
alignStream(fragPrevious, lastLevel, details);
const alignedSlidingStart = details.fragments[0].start;
this.log(
`Live playlist sliding: ${alignedSlidingStart.toFixed(2)} start-sn: ${
previousDetails ? previousDetails.startSN : 'na'
}->${details.startSN} prev-sn: ${
fragPrevious ? fragPrevious.sn : 'na'
} fragments: ${length}`
);
return alignedSlidingStart;
}
return slidingStart;
}

protected waitForCdnTuneIn(details: LevelDetails) {
Expand Down

0 comments on commit 35bc1d7

Please sign in to comment.