hls.js 1.5.18 → 1.5.20
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.js +303 -250
- package/dist/hls.js.d.ts +3 -4
- package/dist/hls.js.map +1 -1
- package/dist/hls.light.js +24 -29
- package/dist/hls.light.js.map +1 -1
- package/dist/hls.light.min.js +1 -1
- package/dist/hls.light.min.js.map +1 -1
- package/dist/hls.light.mjs +23 -28
- package/dist/hls.light.mjs.map +1 -1
- package/dist/hls.min.js +1 -1
- package/dist/hls.min.js.map +1 -1
- package/dist/hls.mjs +252 -206
- package/dist/hls.mjs.map +1 -1
- package/dist/hls.worker.js +1 -1
- package/package.json +1 -1
- package/src/controller/audio-stream-controller.ts +21 -29
- package/src/controller/eme-controller.ts +184 -124
- package/src/loader/key-loader.ts +6 -1
- package/src/loader/level-key.ts +6 -30
- package/src/utils/level-helper.ts +37 -38
- package/src/utils/mediakeys-helper.ts +34 -1
- package/src/utils/rendition-helper.ts +6 -10
package/dist/hls.light.mjs
CHANGED
@@ -411,7 +411,7 @@ function enableLogs(debugConfig, id) {
|
|
411
411
|
// Some browsers don't allow to use bind on console object anyway
|
412
412
|
// fallback to default if needed
|
413
413
|
try {
|
414
|
-
exportedLogger.log(`Debug logs enabled for "${id}" in hls.js version ${"1.5.
|
414
|
+
exportedLogger.log(`Debug logs enabled for "${id}" in hls.js version ${"1.5.20"}`);
|
415
415
|
} catch (e) {
|
416
416
|
exportedLogger = fakeLogger;
|
417
417
|
}
|
@@ -4730,15 +4730,16 @@ function mergeDetails(oldDetails, newDetails) {
|
|
4730
4730
|
delete oldDetails.fragmentHint.endPTS;
|
4731
4731
|
}
|
4732
4732
|
// check if old/new playlists have fragments in common
|
4733
|
-
// loop through overlapping SN and update startPTS
|
4734
|
-
let ccOffset = 0;
|
4733
|
+
// loop through overlapping SN and update startPTS, cc, and duration if any found
|
4735
4734
|
let PTSFrag;
|
4736
|
-
mapFragmentIntersection(oldDetails, newDetails, (oldFrag, newFrag) => {
|
4737
|
-
if (
|
4738
|
-
|
4739
|
-
|
4740
|
-
|
4741
|
-
|
4735
|
+
mapFragmentIntersection(oldDetails, newDetails, (oldFrag, newFrag, newFragIndex, newFragments) => {
|
4736
|
+
if (newDetails.skippedSegments) {
|
4737
|
+
if (newFrag.cc !== oldFrag.cc) {
|
4738
|
+
const ccOffset = oldFrag.cc - newFrag.cc;
|
4739
|
+
for (let i = newFragIndex; i < newFragments.length; i++) {
|
4740
|
+
newFragments[i].cc += ccOffset;
|
4741
|
+
}
|
4742
|
+
}
|
4742
4743
|
}
|
4743
4744
|
if (isFiniteNumber(oldFrag.startPTS) && isFiniteNumber(oldFrag.endPTS)) {
|
4744
4745
|
newFrag.start = newFrag.startPTS = oldFrag.startPTS;
|
@@ -4763,8 +4764,9 @@ function mergeDetails(oldDetails, newDetails) {
|
|
4763
4764
|
currentInitSegment = oldFrag.initSegment;
|
4764
4765
|
}
|
4765
4766
|
});
|
4767
|
+
const newFragments = newDetails.fragments;
|
4766
4768
|
if (currentInitSegment) {
|
4767
|
-
const fragmentsToCheck = newDetails.fragmentHint ?
|
4769
|
+
const fragmentsToCheck = newDetails.fragmentHint ? newFragments.concat(newDetails.fragmentHint) : newFragments;
|
4768
4770
|
fragmentsToCheck.forEach(frag => {
|
4769
4771
|
var _currentInitSegment;
|
4770
4772
|
if (frag && (!frag.initSegment || frag.initSegment.relurl === ((_currentInitSegment = currentInitSegment) == null ? void 0 : _currentInitSegment.relurl))) {
|
@@ -4773,27 +4775,20 @@ function mergeDetails(oldDetails, newDetails) {
|
|
4773
4775
|
});
|
4774
4776
|
}
|
4775
4777
|
if (newDetails.skippedSegments) {
|
4776
|
-
newDetails.deltaUpdateFailed =
|
4778
|
+
newDetails.deltaUpdateFailed = newFragments.some(frag => !frag);
|
4777
4779
|
if (newDetails.deltaUpdateFailed) {
|
4778
4780
|
logger.warn('[level-helper] Previous playlist missing segments skipped in delta playlist');
|
4779
4781
|
for (let i = newDetails.skippedSegments; i--;) {
|
4780
|
-
|
4782
|
+
newFragments.shift();
|
4783
|
+
}
|
4784
|
+
newDetails.startSN = newFragments[0].sn;
|
4785
|
+
} else {
|
4786
|
+
if (newDetails.canSkipDateRanges) {
|
4787
|
+
newDetails.dateRanges = mergeDateRanges(oldDetails.dateRanges, newDetails.dateRanges, newDetails.recentlyRemovedDateranges);
|
4781
4788
|
}
|
4782
|
-
newDetails.startSN = newDetails.fragments[0].sn;
|
4783
|
-
newDetails.startCC = newDetails.fragments[0].cc;
|
4784
|
-
} else if (newDetails.canSkipDateRanges) {
|
4785
|
-
newDetails.dateRanges = mergeDateRanges(oldDetails.dateRanges, newDetails.dateRanges, newDetails.recentlyRemovedDateranges);
|
4786
|
-
}
|
4787
|
-
}
|
4788
|
-
const newFragments = newDetails.fragments;
|
4789
|
-
if (ccOffset) {
|
4790
|
-
logger.warn('discontinuity sliding from playlist, take drift into account');
|
4791
|
-
for (let i = 0; i < newFragments.length; i++) {
|
4792
|
-
newFragments[i].cc += ccOffset;
|
4793
4789
|
}
|
4794
|
-
}
|
4795
|
-
if (newDetails.skippedSegments) {
|
4796
4790
|
newDetails.startCC = newDetails.fragments[0].cc;
|
4791
|
+
newDetails.endCC = newFragments[newFragments.length - 1].cc;
|
4797
4792
|
}
|
4798
4793
|
|
4799
4794
|
// Merge parts
|
@@ -4877,7 +4872,7 @@ function mapFragmentIntersection(oldDetails, newDetails, intersectionFn) {
|
|
4877
4872
|
newFrag = newDetails.fragments[i] = oldFrag;
|
4878
4873
|
}
|
4879
4874
|
if (oldFrag && newFrag) {
|
4880
|
-
intersectionFn(oldFrag, newFrag);
|
4875
|
+
intersectionFn(oldFrag, newFrag, i, newFrags);
|
4881
4876
|
}
|
4882
4877
|
}
|
4883
4878
|
}
|
@@ -10944,7 +10939,7 @@ class KeyLoader {
|
|
10944
10939
|
}
|
10945
10940
|
}
|
10946
10941
|
load(frag) {
|
10947
|
-
if (!frag.decryptdata && frag.encrypted && this.emeController) {
|
10942
|
+
if (!frag.decryptdata && frag.encrypted && this.emeController && this.config.emeEnabled) {
|
10948
10943
|
// Multiple keys, but none selected, resolve in eme-controller
|
10949
10944
|
return this.emeController.selectKeySystemFormat(frag).then(keySystemFormat => {
|
10950
10945
|
return this.loadInternal(frag, keySystemFormat);
|
@@ -19748,7 +19743,7 @@ class Hls {
|
|
19748
19743
|
* Get the video-dev/hls.js package version.
|
19749
19744
|
*/
|
19750
19745
|
static get version() {
|
19751
|
-
return "1.5.
|
19746
|
+
return "1.5.20";
|
19752
19747
|
}
|
19753
19748
|
|
19754
19749
|
/**
|