hls.js 1.6.3-0.canary.11253 → 1.6.3-0.canary.11254

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/hls.light.js CHANGED
@@ -1165,7 +1165,7 @@
1165
1165
  // Some browsers don't allow to use bind on console object anyway
1166
1166
  // fallback to default if needed
1167
1167
  try {
1168
- newLogger.log("Debug logs enabled for \"" + context + "\" in hls.js version " + "1.6.3-0.canary.11253");
1168
+ newLogger.log("Debug logs enabled for \"" + context + "\" in hls.js version " + "1.6.3-0.canary.11254");
1169
1169
  } catch (e) {
1170
1170
  /* log fn threw an exception. All logger methods are no-ops. */
1171
1171
  return createLogger();
@@ -4406,7 +4406,6 @@
4406
4406
  if (PDTValue >= (endPDT || 0)) {
4407
4407
  return null;
4408
4408
  }
4409
- maxFragLookUpTolerance = maxFragLookUpTolerance || 0;
4410
4409
  for (var seg = 0; seg < fragments.length; ++seg) {
4411
4410
  var frag = fragments[seg];
4412
4411
  if (pdtWithinToleranceTest(PDTValue, maxFragLookUpTolerance, frag)) {
@@ -4532,16 +4531,35 @@
4532
4531
  var endProgramDateTime = candidate.endProgramDateTime || 0;
4533
4532
  return endProgramDateTime - candidateLookupTolerance > pdtBufferEnd;
4534
4533
  }
4535
- function findFragWithCC(fragments, cc) {
4536
- return BinarySearch.search(fragments, function (candidate) {
4537
- if (candidate.cc < cc) {
4538
- return 1;
4539
- } else if (candidate.cc > cc) {
4540
- return -1;
4541
- } else {
4542
- return 0;
4534
+ function findNearestWithCC(details, cc, pos) {
4535
+ if (details) {
4536
+ if (details.startCC <= cc && details.endCC >= cc) {
4537
+ var fragments = details.fragments;
4538
+ var fragmentHint = details.fragmentHint;
4539
+ if (fragmentHint) {
4540
+ fragments = fragments.concat(fragmentHint);
4541
+ }
4542
+ var closest;
4543
+ BinarySearch.search(fragments, function (candidate) {
4544
+ if (candidate.cc < cc) {
4545
+ return 1;
4546
+ }
4547
+ if (candidate.cc > cc) {
4548
+ return -1;
4549
+ }
4550
+ closest = candidate;
4551
+ if (candidate.end <= pos) {
4552
+ return 1;
4553
+ }
4554
+ if (candidate.start > pos) {
4555
+ return -1;
4556
+ }
4557
+ return 0;
4558
+ });
4559
+ return closest || null;
4543
4560
  }
4544
- });
4561
+ }
4562
+ return null;
4545
4563
  }
4546
4564
 
4547
4565
  function isTimeoutError(error) {
@@ -17600,7 +17618,7 @@
17600
17618
  this.log("LL-Part loading ON for initial live fragment");
17601
17619
  this.loadingParts = true;
17602
17620
  }
17603
- frag = this.getInitialLiveFragment(levelDetails, fragments);
17621
+ frag = this.getInitialLiveFragment(levelDetails);
17604
17622
  var mainStart = this.hls.startPosition;
17605
17623
  var liveSyncPosition = this.hls.liveSyncPosition;
17606
17624
  var startPosition = frag ? (mainStart !== -1 && mainStart >= start ? mainStart : liveSyncPosition) || frag.start : pos;
@@ -17693,7 +17711,8 @@
17693
17711
  "sliding" of the playlist, which is its offset from the start of playback. After sliding we can compute the real
17694
17712
  start and end times for each fragment in the playlist (after which this method will not need to be called).
17695
17713
  */;
17696
- _proto.getInitialLiveFragment = function getInitialLiveFragment(levelDetails, fragments) {
17714
+ _proto.getInitialLiveFragment = function getInitialLiveFragment(levelDetails) {
17715
+ var fragments = levelDetails.fragments;
17697
17716
  var fragPrevious = this.fragPrevious;
17698
17717
  var frag = null;
17699
17718
  if (fragPrevious) {
@@ -17716,7 +17735,7 @@
17716
17735
  // It's important to stay within the continuity range if available; otherwise the fragments in the playlist
17717
17736
  // will have the wrong start times
17718
17737
  if (!frag) {
17719
- frag = findFragWithCC(fragments, fragPrevious.cc);
17738
+ frag = findNearestWithCC(levelDetails, fragPrevious.cc, fragPrevious.end);
17720
17739
  if (frag) {
17721
17740
  this.log("Live playlist, switching playlist, load frag with same CC: " + frag.sn);
17722
17741
  }
@@ -20500,7 +20519,7 @@
20500
20519
  return !remuxResult.audio && !remuxResult.video && !remuxResult.text && !remuxResult.id3 && !remuxResult.initSegment;
20501
20520
  }
20502
20521
 
20503
- var version = "1.6.3-0.canary.11253";
20522
+ var version = "1.6.3-0.canary.11254";
20504
20523
 
20505
20524
  // ensure the worker ends up in the bundle
20506
20525
  // If the worker should not be included this gets aliased to empty.js