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/package.json CHANGED
@@ -135,5 +135,5 @@
135
135
  "url-toolkit": "2.2.5",
136
136
  "wrangler": "4.19.2"
137
137
  },
138
- "version": "1.6.6-0.canary.11291"
138
+ "version": "1.6.6-0.canary.11292"
139
139
  }
@@ -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
- const dataSizeOrKidCount = view.getUint32(28);
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
- if (size - 32 < dataSizeOrKidCount || dataSizeOrKidCount < 22) {
1454
- return { offset, size };
1455
- }
1456
- data = new Uint8Array(buffer, offset + 32, dataSizeOrKidCount);
1455
+ dataSizeOffset = 28;
1457
1456
  } else if (version === 1) {
1458
- if (
1459
- !dataSizeOrKidCount ||
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 < dataSizeOrKidCount; 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,