hls.js 1.5.3 → 1.5.4
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 +30 -14
- package/dist/hls.js.map +1 -1
- package/dist/hls.light.js +28 -12
- 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 +31 -14
- 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 +33 -16
- package/dist/hls.mjs.map +1 -1
- package/dist/hls.worker.js +1 -1
- package/dist/hls.worker.js.map +1 -1
- package/package.json +1 -1
- package/src/controller/abr-controller.ts +3 -2
- package/src/controller/audio-stream-controller.ts +1 -1
- package/src/controller/stream-controller.ts +2 -1
- package/src/controller/subtitle-stream-controller.ts +1 -1
- package/src/utils/mp4-tools.ts +28 -9
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.4"}`);
|
415
415
|
} catch (e) {
|
416
416
|
exportedLogger = fakeLogger;
|
417
417
|
}
|
@@ -1392,6 +1392,12 @@ function readUint32(buffer, offset) {
|
|
1392
1392
|
const val = readSint32(buffer, offset);
|
1393
1393
|
return val < 0 ? 4294967296 + val : val;
|
1394
1394
|
}
|
1395
|
+
function readUint64(buffer, offset) {
|
1396
|
+
let result = readUint32(buffer, offset);
|
1397
|
+
result *= Math.pow(2, 32);
|
1398
|
+
result += readUint32(buffer, offset + 4);
|
1399
|
+
return result;
|
1400
|
+
}
|
1395
1401
|
function readSint32(buffer, offset) {
|
1396
1402
|
return buffer[offset] << 24 | buffer[offset + 1] << 16 | buffer[offset + 2] << 8 | buffer[offset + 3];
|
1397
1403
|
}
|
@@ -1454,15 +1460,14 @@ function parseSegmentIndex(sidx) {
|
|
1454
1460
|
let index = 8;
|
1455
1461
|
const timescale = readUint32(sidx, index);
|
1456
1462
|
index += 4;
|
1457
|
-
|
1458
|
-
|
1459
|
-
// usually zero in our case
|
1460
|
-
const earliestPresentationTime = 0;
|
1461
|
-
const firstOffset = 0;
|
1463
|
+
let earliestPresentationTime = 0;
|
1464
|
+
let firstOffset = 0;
|
1462
1465
|
if (version === 0) {
|
1463
|
-
index +=
|
1466
|
+
earliestPresentationTime = readUint32(sidx, index += 4);
|
1467
|
+
firstOffset = readUint32(sidx, index += 4);
|
1464
1468
|
} else {
|
1465
|
-
index +=
|
1469
|
+
earliestPresentationTime = readUint64(sidx, index += 8);
|
1470
|
+
firstOffset = readUint64(sidx, index += 8);
|
1466
1471
|
}
|
1467
1472
|
|
1468
1473
|
// skip reserved
|
@@ -1910,15 +1915,22 @@ function getDuration(data, initData) {
|
|
1910
1915
|
}
|
1911
1916
|
if (videoDuration === 0 && audioDuration === 0) {
|
1912
1917
|
// If duration samples are not available in the traf use sidx subsegment_duration
|
1918
|
+
let sidxMinStart = Infinity;
|
1919
|
+
let sidxMaxEnd = 0;
|
1913
1920
|
let sidxDuration = 0;
|
1914
1921
|
const sidxs = findBox(data, ['sidx']);
|
1915
1922
|
for (let i = 0; i < sidxs.length; i++) {
|
1916
1923
|
const sidx = parseSegmentIndex(sidxs[i]);
|
1917
1924
|
if (sidx != null && sidx.references) {
|
1918
|
-
|
1925
|
+
sidxMinStart = Math.min(sidxMinStart, sidx.earliestPresentationTime / sidx.timescale);
|
1926
|
+
const subSegmentDuration = sidx.references.reduce((dur, ref) => dur + ref.info.duration || 0, 0);
|
1927
|
+
sidxMaxEnd = Math.max(sidxMaxEnd, subSegmentDuration + sidx.earliestPresentationTime / sidx.timescale);
|
1928
|
+
sidxDuration = sidxMaxEnd - sidxMinStart;
|
1919
1929
|
}
|
1920
1930
|
}
|
1921
|
-
|
1931
|
+
if (sidxDuration && isFiniteNumber(sidxDuration)) {
|
1932
|
+
return sidxDuration;
|
1933
|
+
}
|
1922
1934
|
}
|
1923
1935
|
if (videoDuration) {
|
1924
1936
|
return videoDuration;
|
@@ -6701,8 +6713,12 @@ class AbrController {
|
|
6701
6713
|
return -1;
|
6702
6714
|
}
|
6703
6715
|
set nextAutoLevel(nextLevel) {
|
6704
|
-
const
|
6705
|
-
|
6716
|
+
const {
|
6717
|
+
maxAutoLevel,
|
6718
|
+
minAutoLevel
|
6719
|
+
} = this.hls;
|
6720
|
+
const value = Math.min(Math.max(nextLevel, minAutoLevel), maxAutoLevel);
|
6721
|
+
if (this._nextAutoLevel !== value) {
|
6706
6722
|
this.nextAutoLevelKey = '';
|
6707
6723
|
this._nextAutoLevel = value;
|
6708
6724
|
}
|
@@ -18610,7 +18626,8 @@ class StreamController extends BaseStreamController {
|
|
18610
18626
|
}
|
18611
18627
|
// set new level to playlist loader : this will trigger start level load
|
18612
18628
|
// hls.nextLoadLevel remains until it is set to a new value or until a new frag is successfully loaded
|
18613
|
-
|
18629
|
+
hls.nextLoadLevel = startLevel;
|
18630
|
+
this.level = hls.loadLevel;
|
18614
18631
|
this.loadedmetadata = false;
|
18615
18632
|
}
|
18616
18633
|
// if startPosition undefined but lastCurrentTime set, set startPosition to last currentTime
|
@@ -19685,7 +19702,7 @@ class Hls {
|
|
19685
19702
|
* Get the video-dev/hls.js package version.
|
19686
19703
|
*/
|
19687
19704
|
static get version() {
|
19688
|
-
return "1.5.
|
19705
|
+
return "1.5.4";
|
19689
19706
|
}
|
19690
19707
|
|
19691
19708
|
/**
|