hls.js 1.6.6-0.canary.11291 → 1.6.6-0.canary.11292
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 +22 -12
- package/dist/hls.js.map +1 -1
- package/dist/hls.light.js +2 -2
- 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 +2 -2
- 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 +22 -12
- 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/utils/mp4-tools.ts +22 -10
package/package.json
CHANGED
package/src/utils/mp4-tools.ts
CHANGED
@@ -1446,26 +1446,38 @@ function parsePssh(view: DataView): PsshData | PsshInvalidResult {
|
|
1446
1446
|
const systemId = Hex.hexDump(
|
1447
1447
|
new Uint8Array(buffer, offset + 12, 16),
|
1448
1448
|
) as KeySystemIds;
|
1449
|
-
|
1449
|
+
|
1450
1450
|
let kids: null | Uint8Array[] = null;
|
1451
1451
|
let data: null | Uint8Array = null;
|
1452
|
+
let dataSizeOffset = 0;
|
1453
|
+
|
1452
1454
|
if (version === 0) {
|
1453
|
-
|
1454
|
-
return { offset, size };
|
1455
|
-
}
|
1456
|
-
data = new Uint8Array(buffer, offset + 32, dataSizeOrKidCount);
|
1455
|
+
dataSizeOffset = 28;
|
1457
1456
|
} else if (version === 1) {
|
1458
|
-
|
1459
|
-
|
1460
|
-
length < offset + 32 + dataSizeOrKidCount * 16 + 16
|
1461
|
-
) {
|
1457
|
+
const kidCounts = view.getUint32(28);
|
1458
|
+
if (!kidCounts || length < 32 + kidCounts * 16) {
|
1462
1459
|
return { offset, size };
|
1463
1460
|
}
|
1464
1461
|
kids = [];
|
1465
|
-
for (let i = 0; i <
|
1462
|
+
for (let i = 0; i < kidCounts; i++) {
|
1466
1463
|
kids.push(new Uint8Array(buffer, offset + 32 + i * 16, 16));
|
1467
1464
|
}
|
1465
|
+
dataSizeOffset = 32 + kidCounts * 16;
|
1468
1466
|
}
|
1467
|
+
|
1468
|
+
if (!dataSizeOffset) {
|
1469
|
+
return { offset, size };
|
1470
|
+
}
|
1471
|
+
|
1472
|
+
const dataSizeOrKidCount = view.getUint32(dataSizeOffset);
|
1473
|
+
if (size - 32 < dataSizeOrKidCount) {
|
1474
|
+
return { offset, size };
|
1475
|
+
}
|
1476
|
+
data = new Uint8Array(
|
1477
|
+
buffer,
|
1478
|
+
offset + dataSizeOffset + 4,
|
1479
|
+
dataSizeOrKidCount,
|
1480
|
+
);
|
1469
1481
|
return {
|
1470
1482
|
version,
|
1471
1483
|
systemId,
|