stormcloud-video-player 0.8.70 → 0.8.72

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.
@@ -1 +1 @@
1
- {"version":3,"sources":["d:\\project\\stormcloud-vp\\lib\\player\\Scte35Parser.cjs"],"names":["__defProp","Object","defineProperty","__getOwnPropDesc","getOwnPropertyDescriptor","__getOwnPropNames","getOwnPropertyNames","__hasOwnProp","prototype","hasOwnProperty","__export","target","all","name","get","enumerable","__copyProps","to","from","except","desc","key","call","__toCommonJS","mod","value","Scte35Parser_exports","decodeId3ValueToText","detectTsPacketFormat","getFragmentStartSeconds","isManifestBasedMarker","normalizeFragmentPayload","parseAttributeList","parseCueOutCont","parseCueOutDuration","parseScte35Binary","parseScte35FromId3","parseScte35FromTsPackets","toNumber","module","exports","num","parseFloat","trim","Number","isNaN","match","dStr","d","res","elapsedMatch","durationMatch","e","elapsed","duration","slashMatch","attrs","regex","exec","rawVal","startsWith","endsWith","slice","val","n","marker","raw","tag","String","includes","id3","splice_command_type","decoder","TextDecoder","fatal","text","decode","test","out","i","length","fromCharCode","frag","candidates","start","startPTS","candidate","isFinite","cueOutMatch","arg","dur","type","ptsSeconds","durationSeconds","cueOutContMatch","cont","cueInMatch","daterangeMatch","hasScteOut","hasScteIn","klass","Uint8Array","bin","payload","ArrayBuffer","isView","view","buffer","byteOffset","byteLength","data","packetSizes","packetSize","tsPayloadOffset","offset","matchedPackets","packetStart","getPsiSectionStart","payloadUnitStart","pointerField","sectionStart","getPsiSectionLength","parsePatSection","pmtPids","sectionLength","sectionEnd","Math","min","programNumber","pid","add","descriptorsIdentifyScte35","end","descriptorStart","descriptorEnd","registration","parsePmtSection","tsScte35Pids","programInfoLength","streamType","elementaryPid","esInfoLength","hasProcessedTsScte35Section","section","processedSections","checksum","has","size","firstKey","values","next","delete","addScte35SectionMarker","markers","source","push","appendScte35Bytes","bytes","assemblers","assembler","expectedLength","collectScte35SectionsFromPayload","previousAssembler","subarray","tableId","totalLength","set","Array","packetInfo","sectionAssemblers","Map","tsStart","secondByte","thirdByte","fourthByte","adaptationFieldControl","hasPayload","payloadStart","adaptationLength","payloadEnd","BitReader","buf","bytePos","bitPos","readBits","numBits","result","remainingInByte","toRead","currentByte","shift","mask","bits","skipBits","bytePosition","readSpliceTime","r","ptsAdjustmentTicks","timeSpecifiedFlag","high","low","ptsTicks","markerTypeFromSegmentationTypeId","segmentationTypeId","parseScte35SegmentationDescriptor","descriptor","identifier","segmentationEventId","cancelIndicator","flags","programSegmentationFlag","segmentationDurationFlag","componentCount","durationTicks","segmentationUpidLength","markerType","parseScte35SegmentationDescriptors","descriptorLoopLength","descriptorOffset","descriptorTag","descriptorLength","descriptorDataStart","descriptorDataEnd","descriptorMarker","ptsAdjHigh","ptsAdjLow","spliceCommandLength","spliceCommandType","spliceEventId","commandBodyStart","cancel","outOfNetwork","programSpliceFlag","durationFlag","spliceImmediateFlag","componentPtsSeconds","expectedDescriptorOffset","splice_event_id","segmentation_event_id"],"mappings":"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","sourcesContent":["\"use strict\";\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __export = (target, all) => {\n for (var name in all)\n __defProp(target, name, { get: all[name], enumerable: true });\n};\nvar __copyProps = (to, from, except, desc) => {\n if (from && typeof from === \"object\" || typeof from === \"function\") {\n for (let key of __getOwnPropNames(from))\n if (!__hasOwnProp.call(to, key) && key !== except)\n __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\n }\n return to;\n};\nvar __toCommonJS = (mod) => __copyProps(__defProp({}, \"__esModule\", { value: true }), mod);\n\n// src/player/Scte35Parser.ts\nvar Scte35Parser_exports = {};\n__export(Scte35Parser_exports, {\n decodeId3ValueToText: () => decodeId3ValueToText,\n detectTsPacketFormat: () => detectTsPacketFormat,\n getFragmentStartSeconds: () => getFragmentStartSeconds,\n isManifestBasedMarker: () => isManifestBasedMarker,\n normalizeFragmentPayload: () => normalizeFragmentPayload,\n parseAttributeList: () => parseAttributeList,\n parseCueOutCont: () => parseCueOutCont,\n parseCueOutDuration: () => parseCueOutDuration,\n parseScte35Binary: () => parseScte35Binary,\n parseScte35FromId3: () => parseScte35FromId3,\n parseScte35FromTsPackets: () => parseScte35FromTsPackets,\n toNumber: () => toNumber\n});\nmodule.exports = __toCommonJS(Scte35Parser_exports);\nfunction parseCueOutDuration(value) {\n const num = parseFloat(value.trim());\n if (!Number.isNaN(num)) return num;\n const match = value.match(/(?:^|[,\\s])DURATION\\s*=\\s*([0-9.]+)/i) || value.match(/Duration\\s*=\\s*([0-9.]+)/i);\n if (match && match[1] != null) {\n const dStr = match[1];\n const d = parseFloat(dStr);\n return Number.isNaN(d) ? void 0 : d;\n }\n return void 0;\n}\nfunction parseCueOutCont(value) {\n const res = {};\n const elapsedMatch = value.match(/Elapsed\\s*=\\s*([0-9.]+)/i);\n const durationMatch = value.match(/Duration\\s*=\\s*([0-9.]+)/i);\n if (elapsedMatch && elapsedMatch[1] != null) {\n const e = parseFloat(elapsedMatch[1]);\n if (!Number.isNaN(e)) res.elapsed = e;\n }\n if (durationMatch && durationMatch[1] != null) {\n const d = parseFloat(durationMatch[1]);\n if (!Number.isNaN(d)) res.duration = d;\n }\n if (!(\"elapsed\" in res) || !(\"duration\" in res)) {\n const slashMatch = value.match(/([0-9.]+)\\s*\\/\\s*([0-9.]+)/);\n if (slashMatch && slashMatch[1] && slashMatch[2]) {\n const elapsed = parseFloat(slashMatch[1]);\n const duration = parseFloat(slashMatch[2]);\n if (!Number.isNaN(elapsed) && !(\"elapsed\" in res)) res.elapsed = elapsed;\n if (!Number.isNaN(duration) && !(\"duration\" in res)) res.duration = duration;\n }\n }\n if (\"elapsed\" in res || \"duration\" in res) return res;\n return void 0;\n}\nfunction parseAttributeList(value) {\n const attrs = {};\n const regex = /([A-Z0-9-]+)=((\"[^\"]*\")|([^\",]*))(?:,|$)/gi;\n let match;\n while ((match = regex.exec(value)) !== null) {\n const key = match[1] ?? \"\";\n let rawVal = match[3] ?? match[4] ?? \"\";\n if (rawVal.startsWith('\"') && rawVal.endsWith('\"')) {\n rawVal = rawVal.slice(1, -1);\n }\n if (key) {\n attrs[key] = rawVal;\n }\n }\n return attrs;\n}\nfunction toNumber(val) {\n if (val == null) return void 0;\n const n = typeof val === \"string\" ? parseFloat(val) : Number(val);\n return Number.isNaN(n) ? void 0 : n;\n}\nfunction isManifestBasedMarker(marker) {\n const raw = marker.raw;\n if (!raw) return false;\n if (raw.tag) {\n const tag = String(raw.tag);\n return tag.includes(\"EXT-X-CUE-OUT\") || tag.includes(\"EXT-X-CUE-IN\") || tag.includes(\"EXT-X-DATERANGE\");\n }\n if (raw.id3) return false;\n if (raw.splice_command_type) return false;\n return false;\n}\nfunction decodeId3ValueToText(value) {\n try {\n if (typeof value === \"string\") return value;\n const decoder = new TextDecoder(\"utf-8\", { fatal: false });\n const text = decoder.decode(value);\n if (text && /[\\x20-\\x7E]/.test(text)) return text;\n let out = \"\";\n for (let i = 0; i < value.length; i++)\n out += String.fromCharCode(value[i]);\n return out;\n } catch {\n return void 0;\n }\n}\nfunction getFragmentStartSeconds(frag) {\n const candidates = [frag?.start, frag?.startPTS];\n for (const candidate of candidates) {\n if (typeof candidate === \"number\" && Number.isFinite(candidate)) {\n return candidate;\n }\n }\n return void 0;\n}\nfunction parseScte35FromId3(tag) {\n const text = decodeId3ValueToText(tag.value);\n if (!text) return void 0;\n const cueOutMatch = text.match(/EXT-X-CUE-OUT(?::([^\\r\\n]*))?/i) || text.match(/CUE-OUT(?::([^\\r\\n]*))?/i);\n if (cueOutMatch) {\n const arg = (cueOutMatch[1] ?? \"\").trim();\n const dur = parseCueOutDuration(arg);\n const marker = {\n type: \"start\",\n ...tag.ptsSeconds !== void 0 ? { ptsSeconds: tag.ptsSeconds } : {},\n ...dur !== void 0 ? { durationSeconds: dur } : {},\n raw: { id3: text }\n };\n return marker;\n }\n const cueOutContMatch = text.match(/EXT-X-CUE-OUT-CONT:([^\\r\\n]*)/i);\n if (cueOutContMatch) {\n const arg = (cueOutContMatch[1] ?? \"\").trim();\n const cont = parseCueOutCont(arg);\n const marker = {\n type: \"progress\",\n ...tag.ptsSeconds !== void 0 ? { ptsSeconds: tag.ptsSeconds } : {},\n ...cont?.duration !== void 0 ? { durationSeconds: cont.duration } : {},\n raw: { id3: text }\n };\n return marker;\n }\n const cueInMatch = text.match(/EXT-X-CUE-IN\\b/i) || text.match(/CUE-IN\\b/i);\n if (cueInMatch) {\n const marker = {\n type: \"end\",\n ...tag.ptsSeconds !== void 0 ? { ptsSeconds: tag.ptsSeconds } : {},\n raw: { id3: text }\n };\n return marker;\n }\n const daterangeMatch = text.match(/EXT-X-DATERANGE:([^\\r\\n]*)/i);\n if (daterangeMatch) {\n const attrs = parseAttributeList(daterangeMatch[1] ?? \"\");\n const hasScteOut = \"SCTE35-OUT\" in attrs || attrs[\"SCTE35-OUT\"] !== void 0;\n const hasScteIn = \"SCTE35-IN\" in attrs || attrs[\"SCTE35-IN\"] !== void 0;\n const klass = String(attrs[\"CLASS\"] ?? \"\");\n const duration = toNumber(attrs[\"DURATION\"]);\n if (hasScteOut || /com\\.apple\\.hls\\.cue/i.test(klass)) {\n const marker = {\n type: \"start\",\n ...tag.ptsSeconds !== void 0 ? { ptsSeconds: tag.ptsSeconds } : {},\n ...duration !== void 0 ? { durationSeconds: duration } : {},\n raw: { id3: text, attrs }\n };\n return marker;\n }\n if (hasScteIn) {\n const marker = {\n type: \"end\",\n ...tag.ptsSeconds !== void 0 ? { ptsSeconds: tag.ptsSeconds } : {},\n raw: { id3: text, attrs }\n };\n return marker;\n }\n }\n if (/SCTE35-OUT/i.test(text)) {\n const marker = {\n type: \"start\",\n ...tag.ptsSeconds !== void 0 ? { ptsSeconds: tag.ptsSeconds } : {},\n raw: { id3: text }\n };\n return marker;\n }\n if (/SCTE35-IN/i.test(text)) {\n const marker = {\n type: \"end\",\n ...tag.ptsSeconds !== void 0 ? { ptsSeconds: tag.ptsSeconds } : {},\n raw: { id3: text }\n };\n return marker;\n }\n if (tag.value instanceof Uint8Array) {\n const bin = parseScte35Binary(tag.value);\n if (bin) return bin;\n }\n return void 0;\n}\nfunction normalizeFragmentPayload(payload) {\n if (payload instanceof Uint8Array) {\n return payload;\n }\n if (payload instanceof ArrayBuffer) {\n return new Uint8Array(payload);\n }\n if (ArrayBuffer.isView(payload)) {\n const view = payload;\n return new Uint8Array(view.buffer, view.byteOffset, view.byteLength);\n }\n return void 0;\n}\nfunction detectTsPacketFormat(data) {\n const packetSizes = [188, 192, 204];\n for (const packetSize of packetSizes) {\n const tsPayloadOffset = packetSize === 192 ? 4 : 0;\n for (let offset = 0; offset < packetSize; offset++) {\n let matchedPackets = 0;\n for (let packetStart = offset; packetStart + tsPayloadOffset < data.length && matchedPackets < 5; packetStart += packetSize) {\n if (data[packetStart + tsPayloadOffset] !== 71) {\n break;\n }\n matchedPackets++;\n }\n if (matchedPackets >= 2) {\n return { offset, packetSize, tsPayloadOffset };\n }\n }\n }\n return void 0;\n}\nfunction getPsiSectionStart(payload, payloadUnitStart) {\n if (!payloadUnitStart) {\n return void 0;\n }\n const pointerField = payload[0];\n if (pointerField == null) {\n return void 0;\n }\n const sectionStart = 1 + pointerField;\n return sectionStart < payload.length ? sectionStart : void 0;\n}\nfunction getPsiSectionLength(data, offset) {\n return ((data[offset + 1] ?? 0) & 15) << 8 | (data[offset + 2] ?? 0);\n}\nfunction parsePatSection(payload, payloadUnitStart, pmtPids) {\n const sectionStart = getPsiSectionStart(payload, payloadUnitStart);\n if (sectionStart == null || sectionStart + 8 >= payload.length) {\n return;\n }\n if (payload[sectionStart] !== 0) {\n return;\n }\n const sectionLength = getPsiSectionLength(payload, sectionStart);\n const sectionEnd = Math.min(\n payload.length,\n sectionStart + 3 + sectionLength\n );\n for (let offset = sectionStart + 8; offset + 4 <= sectionEnd - 4; offset += 4) {\n const programNumber = (payload[offset] ?? 0) << 8 | (payload[offset + 1] ?? 0);\n const pid = ((payload[offset + 2] ?? 0) & 31) << 8 | (payload[offset + 3] ?? 0);\n if (programNumber !== 0) {\n pmtPids.add(pid);\n }\n }\n}\nfunction descriptorsIdentifyScte35(data, start, end) {\n let offset = start;\n while (offset + 2 <= end) {\n const tag = data[offset] ?? 0;\n const length = data[offset + 1] ?? 0;\n const descriptorStart = offset + 2;\n const descriptorEnd = descriptorStart + length;\n if (descriptorEnd > end) {\n return false;\n }\n const registration = length >= 4 ? String.fromCharCode(\n data[descriptorStart] ?? 0,\n data[descriptorStart + 1] ?? 0,\n data[descriptorStart + 2] ?? 0,\n data[descriptorStart + 3] ?? 0\n ) : \"\";\n if (tag === 138 || registration === \"CUEI\" || registration === \"SCTE\") {\n return true;\n }\n offset = descriptorEnd;\n }\n return false;\n}\nfunction parsePmtSection(payload, payloadUnitStart, tsScte35Pids) {\n const sectionStart = getPsiSectionStart(payload, payloadUnitStart);\n if (sectionStart == null || sectionStart + 12 >= payload.length) {\n return;\n }\n if (payload[sectionStart] !== 2) {\n return;\n }\n const sectionLength = getPsiSectionLength(payload, sectionStart);\n const sectionEnd = Math.min(\n payload.length,\n sectionStart + 3 + sectionLength\n );\n const programInfoLength = ((payload[sectionStart + 10] ?? 0) & 15) << 8 | (payload[sectionStart + 11] ?? 0);\n let offset = sectionStart + 12 + programInfoLength;\n while (offset + 5 <= sectionEnd - 4) {\n const streamType = payload[offset] ?? 0;\n const elementaryPid = ((payload[offset + 1] ?? 0) & 31) << 8 | (payload[offset + 2] ?? 0);\n const esInfoLength = ((payload[offset + 3] ?? 0) & 15) << 8 | (payload[offset + 4] ?? 0);\n const descriptorStart = offset + 5;\n const descriptorEnd = Math.min(descriptorStart + esInfoLength, sectionEnd - 4);\n if (streamType === 134 || streamType === 6 && descriptorsIdentifyScte35(payload, descriptorStart, descriptorEnd)) {\n tsScte35Pids.add(elementaryPid);\n }\n offset = descriptorStart + esInfoLength;\n }\n}\nfunction hasProcessedTsScte35Section(section, processedSections) {\n let checksum = 0;\n for (let i = 0; i < section.length; i++) {\n checksum = checksum * 31 + (section[i] ?? 0) >>> 0;\n }\n const key = `${section.length}:${checksum}`;\n if (processedSections.has(key)) {\n return true;\n }\n processedSections.add(key);\n if (processedSections.size > 200) {\n const firstKey = processedSections.values().next().value;\n if (firstKey) {\n processedSections.delete(firstKey);\n }\n }\n return false;\n}\nfunction addScte35SectionMarker(section, markers, processedSections) {\n if (section[0] !== 252 || hasProcessedTsScte35Section(section, processedSections)) {\n return;\n }\n const marker = parseScte35Binary(section);\n if (!marker) {\n return;\n }\n marker.raw = {\n ...typeof marker.raw === \"object\" && marker.raw ? marker.raw : {},\n source: \"ts-packet\"\n };\n markers.push(marker);\n}\nfunction appendScte35Bytes(pid, bytes, assemblers, markers, processedSections) {\n const assembler = assemblers.get(pid);\n if (!assembler) {\n return;\n }\n for (let i = 0; i < bytes.length && assembler.bytes.length < assembler.expectedLength; i++) {\n assembler.bytes.push(bytes[i] ?? 0);\n }\n if (assembler.bytes.length >= assembler.expectedLength) {\n assemblers.delete(pid);\n addScte35SectionMarker(new Uint8Array(assembler.bytes), markers, processedSections);\n }\n}\nfunction collectScte35SectionsFromPayload(pid, payload, payloadUnitStart, assemblers, markers, processedSections) {\n if (payload.length === 0) {\n return;\n }\n let offset = 0;\n if (payloadUnitStart) {\n const pointerField = payload[0] ?? 0;\n const previousAssembler = assemblers.get(pid);\n if (previousAssembler && pointerField > 0) {\n appendScte35Bytes(\n pid,\n payload.subarray(1, Math.min(1 + pointerField, payload.length)),\n assemblers,\n markers,\n processedSections\n );\n }\n assemblers.delete(pid);\n offset = 1 + pointerField;\n } else {\n appendScte35Bytes(pid, payload, assemblers, markers, processedSections);\n return;\n }\n while (offset + 3 <= payload.length) {\n const tableId = payload[offset];\n if (tableId == null || tableId === 255) {\n return;\n }\n const sectionLength = getPsiSectionLength(payload, offset);\n const totalLength = 3 + sectionLength;\n if (sectionLength <= 0 || totalLength <= 3) {\n return;\n }\n if (offset + totalLength <= payload.length) {\n addScte35SectionMarker(\n payload.subarray(offset, offset + totalLength),\n markers,\n processedSections\n );\n offset += totalLength;\n } else {\n assemblers.set(pid, {\n bytes: Array.from(payload.subarray(offset)),\n expectedLength: totalLength\n });\n return;\n }\n }\n}\nfunction parseScte35FromTsPackets(data, tsScte35Pids, pmtPids, processedSections) {\n const packetInfo = detectTsPacketFormat(data);\n if (!packetInfo) {\n return [];\n }\n const markers = [];\n const sectionAssemblers = /* @__PURE__ */ new Map();\n for (let packetStart = packetInfo.offset; packetStart + packetInfo.packetSize <= data.length; packetStart += packetInfo.packetSize) {\n const tsStart = packetStart + packetInfo.tsPayloadOffset;\n if (data[tsStart] !== 71) {\n continue;\n }\n const secondByte = data[tsStart + 1];\n const thirdByte = data[tsStart + 2];\n const fourthByte = data[tsStart + 3];\n if (secondByte == null || thirdByte == null || fourthByte == null || (secondByte & 128) !== 0) {\n continue;\n }\n const payloadUnitStart = (secondByte & 64) !== 0;\n const pid = (secondByte & 31) << 8 | thirdByte;\n const adaptationFieldControl = fourthByte >> 4 & 3;\n const hasPayload = adaptationFieldControl === 1 || adaptationFieldControl === 3;\n if (!hasPayload) {\n continue;\n }\n let payloadStart = tsStart + 4;\n if (adaptationFieldControl === 3) {\n const adaptationLength = data[payloadStart];\n if (adaptationLength == null) {\n continue;\n }\n payloadStart += 1 + adaptationLength;\n }\n const payloadEnd = Math.min(tsStart + 188, data.length);\n if (payloadStart >= payloadEnd || payloadStart >= data.length) {\n continue;\n }\n const payload = data.subarray(payloadStart, payloadEnd);\n if (pid === 0) {\n parsePatSection(payload, payloadUnitStart, pmtPids);\n } else if (pmtPids.has(pid)) {\n parsePmtSection(payload, payloadUnitStart, tsScte35Pids);\n } else if (tsScte35Pids.has(pid)) {\n collectScte35SectionsFromPayload(\n pid,\n payload,\n payloadUnitStart,\n sectionAssemblers,\n markers,\n processedSections\n );\n }\n }\n return markers;\n}\nvar BitReader = class {\n constructor(buf) {\n this.buf = buf;\n this.bytePos = 0;\n this.bitPos = 0;\n }\n readBits(numBits) {\n let result = 0;\n while (numBits > 0) {\n if (this.bytePos >= this.buf.length) return result;\n const remainingInByte = 8 - this.bitPos;\n const toRead = Math.min(numBits, remainingInByte);\n const currentByte = this.buf[this.bytePos];\n const shift = remainingInByte - toRead;\n const mask = (1 << toRead) - 1 & 255;\n const bits = currentByte >> shift & mask;\n result = result << toRead | bits;\n this.bitPos += toRead;\n if (this.bitPos >= 8) {\n this.bitPos = 0;\n this.bytePos += 1;\n }\n numBits -= toRead;\n }\n return result >>> 0;\n }\n skipBits(n) {\n this.readBits(n);\n }\n get bytePosition() {\n return this.bitPos === 0 ? this.bytePos : this.bytePos + 1;\n }\n};\nfunction readSpliceTime(r, ptsAdjustmentTicks) {\n const timeSpecifiedFlag = r.readBits(1) === 1;\n if (!timeSpecifiedFlag) {\n r.readBits(7);\n return void 0;\n }\n r.readBits(6);\n const high = r.readBits(1);\n const low = r.readBits(32);\n const ptsTicks = (high * 4294967296 + low + ptsAdjustmentTicks) % 8589934592;\n return ptsTicks / 9e4;\n}\nfunction markerTypeFromSegmentationTypeId(segmentationTypeId) {\n switch (segmentationTypeId) {\n case 16:\n case 34:\n case 48:\n case 50:\n case 52:\n case 54:\n return \"start\";\n case 17:\n case 35:\n case 49:\n case 51:\n case 53:\n case 55:\n return \"end\";\n default:\n return void 0;\n }\n}\nfunction parseScte35SegmentationDescriptor(descriptor) {\n if (descriptor.length < 11) {\n return void 0;\n }\n const identifier = String.fromCharCode(\n descriptor[0] ?? 0,\n descriptor[1] ?? 0,\n descriptor[2] ?? 0,\n descriptor[3] ?? 0\n );\n if (identifier !== \"CUEI\") {\n return void 0;\n }\n const segmentationEventId = (descriptor[4] ?? 0) * 16777216 + ((descriptor[5] ?? 0) << 16) + ((descriptor[6] ?? 0) << 8) + (descriptor[7] ?? 0);\n const cancelIndicator = ((descriptor[8] ?? 0) & 128) !== 0;\n if (cancelIndicator) {\n return void 0;\n }\n const flags = descriptor[9] ?? 0;\n const programSegmentationFlag = (flags & 128) !== 0;\n const segmentationDurationFlag = (flags & 64) !== 0;\n let offset = 10;\n if (!programSegmentationFlag) {\n const componentCount = descriptor[offset] ?? 0;\n offset += 1 + componentCount * 6;\n if (offset > descriptor.length) {\n return void 0;\n }\n }\n let durationSeconds = void 0;\n if (segmentationDurationFlag) {\n if (offset + 5 > descriptor.length) {\n return void 0;\n }\n const durationTicks = (descriptor[offset] ?? 0) * 4294967296 + (descriptor[offset + 1] ?? 0) * 16777216 + ((descriptor[offset + 2] ?? 0) << 16) + ((descriptor[offset + 3] ?? 0) << 8) + (descriptor[offset + 4] ?? 0);\n durationSeconds = durationTicks / 9e4;\n offset += 5;\n }\n if (offset + 2 > descriptor.length) {\n return void 0;\n }\n offset += 1;\n const segmentationUpidLength = descriptor[offset] ?? 0;\n offset += 1 + segmentationUpidLength;\n if (offset >= descriptor.length) {\n return void 0;\n }\n const segmentationTypeId = descriptor[offset] ?? 0;\n const markerType = markerTypeFromSegmentationTypeId(segmentationTypeId);\n if (!markerType) {\n return void 0;\n }\n return {\n type: markerType,\n ...durationSeconds !== void 0 ? { durationSeconds } : {},\n segmentationEventId\n };\n}\nfunction parseScte35SegmentationDescriptors(data, offset) {\n if (offset + 2 > data.length) {\n return void 0;\n }\n const descriptorLoopLength = (data[offset] ?? 0) << 8 | (data[offset + 1] ?? 0);\n let descriptorOffset = offset + 2;\n const descriptorEnd = Math.min(\n data.length,\n descriptorOffset + descriptorLoopLength\n );\n while (descriptorOffset + 2 <= descriptorEnd) {\n const descriptorTag = data[descriptorOffset] ?? 0;\n const descriptorLength = data[descriptorOffset + 1] ?? 0;\n const descriptorDataStart = descriptorOffset + 2;\n const descriptorDataEnd = descriptorDataStart + descriptorLength;\n if (descriptorDataEnd > descriptorEnd) {\n return void 0;\n }\n if (descriptorTag === 2) {\n const descriptorMarker = parseScte35SegmentationDescriptor(\n data.subarray(descriptorDataStart, descriptorDataEnd)\n );\n if (descriptorMarker) {\n return descriptorMarker;\n }\n }\n descriptorOffset = descriptorDataEnd;\n }\n return void 0;\n}\nfunction parseScte35Binary(data) {\n const r = new BitReader(data);\n const tableId = r.readBits(8);\n if (tableId !== 252) return void 0;\n r.readBits(1);\n r.readBits(1);\n r.readBits(2);\n const sectionLength = r.readBits(12);\n if (sectionLength <= 0 || data.length < 3 + sectionLength) {\n return void 0;\n }\n r.readBits(8);\n r.readBits(1);\n r.readBits(6);\n const ptsAdjHigh = r.readBits(1);\n const ptsAdjLow = r.readBits(32);\n const ptsAdjustmentTicks = ptsAdjHigh * 4294967296 + ptsAdjLow;\n r.readBits(8);\n r.readBits(12);\n const spliceCommandLength = r.readBits(12);\n const spliceCommandType = r.readBits(8);\n let markerType;\n let durationSeconds = void 0;\n let ptsSeconds = void 0;\n let spliceEventId = void 0;\n const commandBodyStart = r.bytePosition;\n if (spliceCommandType === 5) {\n spliceEventId = r.readBits(32);\n const cancel = r.readBits(1) === 1;\n r.readBits(7);\n if (cancel) return void 0;\n const outOfNetwork = r.readBits(1) === 1;\n const programSpliceFlag = r.readBits(1) === 1;\n const durationFlag = r.readBits(1) === 1;\n const spliceImmediateFlag = r.readBits(1) === 1;\n r.readBits(4);\n markerType = outOfNetwork ? \"start\" : \"end\";\n if (programSpliceFlag && !spliceImmediateFlag) {\n ptsSeconds = readSpliceTime(r, ptsAdjustmentTicks);\n } else if (!programSpliceFlag) {\n const componentCount = r.readBits(8);\n for (let i = 0; i < componentCount; i++) {\n r.readBits(8);\n if (!spliceImmediateFlag) {\n const componentPtsSeconds = readSpliceTime(r, ptsAdjustmentTicks);\n if (ptsSeconds === void 0) {\n ptsSeconds = componentPtsSeconds;\n }\n }\n }\n }\n if (durationFlag) {\n r.readBits(6);\n r.readBits(1);\n const high = r.readBits(1);\n const low = r.readBits(32);\n const durationTicks = high * 4294967296 + low;\n durationSeconds = durationTicks / 9e4;\n }\n r.readBits(16);\n r.readBits(8);\n r.readBits(8);\n } else if (spliceCommandType === 6) {\n ptsSeconds = readSpliceTime(r, ptsAdjustmentTicks);\n } else {\n return void 0;\n }\n const expectedDescriptorOffset = spliceCommandLength === 4095 ? r.bytePosition : commandBodyStart + spliceCommandLength;\n const descriptorMarker = parseScte35SegmentationDescriptors(\n data,\n expectedDescriptorOffset\n );\n if (descriptorMarker) {\n markerType = descriptorMarker.type;\n if (durationSeconds === void 0) {\n durationSeconds = descriptorMarker.durationSeconds;\n }\n }\n if (!markerType) {\n return void 0;\n }\n const marker = {\n type: markerType,\n ...ptsSeconds !== void 0 ? { ptsSeconds } : {},\n ...durationSeconds !== void 0 ? { durationSeconds } : {},\n raw: {\n splice_command_type: spliceCommandType,\n ...spliceEventId !== void 0 ? { splice_event_id: spliceEventId } : {},\n ...descriptorMarker?.segmentationEventId !== void 0 ? { segmentation_event_id: descriptorMarker.segmentationEventId } : {}\n }\n };\n return marker;\n}\n// Annotate the CommonJS export names for ESM import in node:\n0 && (module.exports = {\n decodeId3ValueToText,\n detectTsPacketFormat,\n getFragmentStartSeconds,\n isManifestBasedMarker,\n normalizeFragmentPayload,\n parseAttributeList,\n parseCueOutCont,\n parseCueOutDuration,\n parseScte35Binary,\n parseScte35FromId3,\n parseScte35FromTsPackets,\n toNumber\n});\n"]}
1
+ {"version":3,"sources":["d:\\project\\stormcloud-vp\\lib\\player\\Scte35Parser.cjs"],"names":["__defProp","Object","defineProperty","__getOwnPropDesc","getOwnPropertyDescriptor","__getOwnPropNames","getOwnPropertyNames","__hasOwnProp","prototype","hasOwnProperty","__export","target","all","name","get","enumerable","__copyProps","to","from","except","desc","key","call","__toCommonJS","mod","value","Scte35Parser_exports","decodeId3ValueToText","detectTsPacketFormat","getDateRangeDurationSeconds","getFragmentStartSeconds","isManifestBasedMarker","normalizeFragmentPayload","parseAttributeList","parseCueOutCont","parseCueOutDuration","parseScte35Binary","parseScte35FromId3","parseScte35FromTsPackets","toNumber","module","exports","num","parseFloat","trim","Number","isNaN","match","dStr","d","res","elapsedMatch","durationMatch","e","elapsed","duration","slashMatch","attrs","regex","exec","rawVal","startsWith","endsWith","slice","val","n","marker","raw","tag","String","includes","id3","splice_command_type","decoder","TextDecoder","fatal","text","decode","test","out","i","length","fromCharCode","frag","candidates","start","startPTS","candidate","isFinite","cueOutMatch","arg","dur","type","ptsSeconds","durationSeconds","cueOutContMatch","cont","cueInMatch","daterangeMatch","hasScteOut","hasScteIn","klass","Uint8Array","bin","payload","ArrayBuffer","isView","view","buffer","byteOffset","byteLength","data","packetSizes","packetSize","tsPayloadOffset","offset","matchedPackets","packetStart","getPsiSectionStart","payloadUnitStart","pointerField","sectionStart","getPsiSectionLength","parsePatSection","pmtPids","sectionLength","sectionEnd","Math","min","programNumber","pid","add","descriptorsIdentifyScte35","end","descriptorStart","descriptorEnd","registration","parsePmtSection","tsScte35Pids","programInfoLength","streamType","elementaryPid","esInfoLength","hasProcessedTsScte35Section","section","processedSections","checksum","has","size","firstKey","values","next","delete","addScte35SectionMarker","markers","source","push","appendScte35Bytes","bytes","assemblers","assembler","expectedLength","collectScte35SectionsFromPayload","previousAssembler","subarray","tableId","totalLength","set","Array","packetInfo","sectionAssemblers","Map","tsStart","secondByte","thirdByte","fourthByte","adaptationFieldControl","hasPayload","payloadStart","adaptationLength","payloadEnd","BitReader","buf","bytePos","bitPos","readBits","numBits","result","remainingInByte","toRead","currentByte","shift","mask","bits","skipBits","bytePosition","readSpliceTime","r","ptsAdjustmentTicks","timeSpecifiedFlag","high","low","ptsTicks","markerTypeFromSegmentationTypeId","segmentationTypeId","parseScte35SegmentationDescriptor","descriptor","identifier","segmentationEventId","cancelIndicator","flags","programSegmentationFlag","segmentationDurationFlag","componentCount","durationTicks","segmentationUpidLength","markerType","parseScte35SegmentationDescriptors","descriptorLoopLength","descriptorOffset","descriptorTag","descriptorLength","descriptorDataStart","descriptorDataEnd","descriptorMarker","ptsAdjHigh","ptsAdjLow","spliceCommandLength","spliceCommandType","spliceEventId","commandBodyStart","cancel","outOfNetwork","programSpliceFlag","durationFlag","spliceImmediateFlag","componentPtsSeconds","expectedDescriptorOffset","splice_event_id","segmentation_event_id"],"mappings":"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","sourcesContent":["\"use strict\";\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __export = (target, all) => {\n for (var name in all)\n __defProp(target, name, { get: all[name], enumerable: true });\n};\nvar __copyProps = (to, from, except, desc) => {\n if (from && typeof from === \"object\" || typeof from === \"function\") {\n for (let key of __getOwnPropNames(from))\n if (!__hasOwnProp.call(to, key) && key !== except)\n __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\n }\n return to;\n};\nvar __toCommonJS = (mod) => __copyProps(__defProp({}, \"__esModule\", { value: true }), mod);\n\n// src/player/Scte35Parser.ts\nvar Scte35Parser_exports = {};\n__export(Scte35Parser_exports, {\n decodeId3ValueToText: () => decodeId3ValueToText,\n detectTsPacketFormat: () => detectTsPacketFormat,\n getDateRangeDurationSeconds: () => getDateRangeDurationSeconds,\n getFragmentStartSeconds: () => getFragmentStartSeconds,\n isManifestBasedMarker: () => isManifestBasedMarker,\n normalizeFragmentPayload: () => normalizeFragmentPayload,\n parseAttributeList: () => parseAttributeList,\n parseCueOutCont: () => parseCueOutCont,\n parseCueOutDuration: () => parseCueOutDuration,\n parseScte35Binary: () => parseScte35Binary,\n parseScte35FromId3: () => parseScte35FromId3,\n parseScte35FromTsPackets: () => parseScte35FromTsPackets,\n toNumber: () => toNumber\n});\nmodule.exports = __toCommonJS(Scte35Parser_exports);\nfunction parseCueOutDuration(value) {\n const num = parseFloat(value.trim());\n if (!Number.isNaN(num)) return num;\n const match = value.match(/(?:^|[,\\s])DURATION\\s*=\\s*([0-9.]+)/i) || value.match(/Duration\\s*=\\s*([0-9.]+)/i);\n if (match && match[1] != null) {\n const dStr = match[1];\n const d = parseFloat(dStr);\n return Number.isNaN(d) ? void 0 : d;\n }\n return void 0;\n}\nfunction parseCueOutCont(value) {\n const res = {};\n const elapsedMatch = value.match(/Elapsed\\s*=\\s*([0-9.]+)/i);\n const durationMatch = value.match(/Duration\\s*=\\s*([0-9.]+)/i);\n if (elapsedMatch && elapsedMatch[1] != null) {\n const e = parseFloat(elapsedMatch[1]);\n if (!Number.isNaN(e)) res.elapsed = e;\n }\n if (durationMatch && durationMatch[1] != null) {\n const d = parseFloat(durationMatch[1]);\n if (!Number.isNaN(d)) res.duration = d;\n }\n if (!(\"elapsed\" in res) || !(\"duration\" in res)) {\n const slashMatch = value.match(/([0-9.]+)\\s*\\/\\s*([0-9.]+)/);\n if (slashMatch && slashMatch[1] && slashMatch[2]) {\n const elapsed = parseFloat(slashMatch[1]);\n const duration = parseFloat(slashMatch[2]);\n if (!Number.isNaN(elapsed) && !(\"elapsed\" in res)) res.elapsed = elapsed;\n if (!Number.isNaN(duration) && !(\"duration\" in res)) res.duration = duration;\n }\n }\n if (\"elapsed\" in res || \"duration\" in res) return res;\n return void 0;\n}\nfunction parseAttributeList(value) {\n const attrs = {};\n const regex = /([A-Z0-9-]+)=((\"[^\"]*\")|([^\",]*))(?:,|$)/gi;\n let match;\n while ((match = regex.exec(value)) !== null) {\n const key = match[1] ?? \"\";\n let rawVal = match[3] ?? match[4] ?? \"\";\n if (rawVal.startsWith('\"') && rawVal.endsWith('\"')) {\n rawVal = rawVal.slice(1, -1);\n }\n if (key) {\n attrs[key] = rawVal;\n }\n }\n return attrs;\n}\nfunction toNumber(val) {\n if (val == null) return void 0;\n const n = typeof val === \"string\" ? parseFloat(val) : Number(val);\n return Number.isNaN(n) ? void 0 : n;\n}\nfunction getDateRangeDurationSeconds(attrs) {\n return toNumber(attrs[\"DURATION\"]) ?? toNumber(attrs[\"PLANNED-DURATION\"]);\n}\nfunction isManifestBasedMarker(marker) {\n const raw = marker.raw;\n if (!raw) return false;\n if (raw.tag) {\n const tag = String(raw.tag);\n return tag.includes(\"EXT-X-CUE-OUT\") || tag.includes(\"EXT-X-CUE-IN\") || tag.includes(\"EXT-X-DATERANGE\");\n }\n if (raw.id3) return false;\n if (raw.splice_command_type) return false;\n return false;\n}\nfunction decodeId3ValueToText(value) {\n try {\n if (typeof value === \"string\") return value;\n const decoder = new TextDecoder(\"utf-8\", { fatal: false });\n const text = decoder.decode(value);\n if (text && /[\\x20-\\x7E]/.test(text)) return text;\n let out = \"\";\n for (let i = 0; i < value.length; i++)\n out += String.fromCharCode(value[i]);\n return out;\n } catch {\n return void 0;\n }\n}\nfunction getFragmentStartSeconds(frag) {\n const candidates = [frag?.start, frag?.startPTS];\n for (const candidate of candidates) {\n if (typeof candidate === \"number\" && Number.isFinite(candidate)) {\n return candidate;\n }\n }\n return void 0;\n}\nfunction parseScte35FromId3(tag) {\n const text = decodeId3ValueToText(tag.value);\n if (!text) return void 0;\n const cueOutMatch = text.match(/EXT-X-CUE-OUT(?::([^\\r\\n]*))?/i) || text.match(/CUE-OUT(?::([^\\r\\n]*))?/i);\n if (cueOutMatch) {\n const arg = (cueOutMatch[1] ?? \"\").trim();\n const dur = parseCueOutDuration(arg);\n const marker = {\n type: \"start\",\n ...tag.ptsSeconds !== void 0 ? { ptsSeconds: tag.ptsSeconds } : {},\n ...dur !== void 0 ? { durationSeconds: dur } : {},\n raw: { id3: text }\n };\n return marker;\n }\n const cueOutContMatch = text.match(/EXT-X-CUE-OUT-CONT:([^\\r\\n]*)/i);\n if (cueOutContMatch) {\n const arg = (cueOutContMatch[1] ?? \"\").trim();\n const cont = parseCueOutCont(arg);\n const marker = {\n type: \"progress\",\n ...tag.ptsSeconds !== void 0 ? { ptsSeconds: tag.ptsSeconds } : {},\n ...cont?.duration !== void 0 ? { durationSeconds: cont.duration } : {},\n raw: { id3: text }\n };\n return marker;\n }\n const cueInMatch = text.match(/EXT-X-CUE-IN\\b/i) || text.match(/CUE-IN\\b/i);\n if (cueInMatch) {\n const marker = {\n type: \"end\",\n ...tag.ptsSeconds !== void 0 ? { ptsSeconds: tag.ptsSeconds } : {},\n raw: { id3: text }\n };\n return marker;\n }\n const daterangeMatch = text.match(/EXT-X-DATERANGE:([^\\r\\n]*)/i);\n if (daterangeMatch) {\n const attrs = parseAttributeList(daterangeMatch[1] ?? \"\");\n const hasScteOut = \"SCTE35-OUT\" in attrs || attrs[\"SCTE35-OUT\"] !== void 0;\n const hasScteIn = \"SCTE35-IN\" in attrs || attrs[\"SCTE35-IN\"] !== void 0;\n const klass = String(attrs[\"CLASS\"] ?? \"\");\n const duration = toNumber(attrs[\"DURATION\"]);\n if (hasScteOut || /com\\.apple\\.hls\\.cue/i.test(klass)) {\n const marker = {\n type: \"start\",\n ...tag.ptsSeconds !== void 0 ? { ptsSeconds: tag.ptsSeconds } : {},\n ...duration !== void 0 ? { durationSeconds: duration } : {},\n raw: { id3: text, attrs }\n };\n return marker;\n }\n if (hasScteIn) {\n const marker = {\n type: \"end\",\n ...tag.ptsSeconds !== void 0 ? { ptsSeconds: tag.ptsSeconds } : {},\n raw: { id3: text, attrs }\n };\n return marker;\n }\n }\n if (/SCTE35-OUT/i.test(text)) {\n const marker = {\n type: \"start\",\n ...tag.ptsSeconds !== void 0 ? { ptsSeconds: tag.ptsSeconds } : {},\n raw: { id3: text }\n };\n return marker;\n }\n if (/SCTE35-IN/i.test(text)) {\n const marker = {\n type: \"end\",\n ...tag.ptsSeconds !== void 0 ? { ptsSeconds: tag.ptsSeconds } : {},\n raw: { id3: text }\n };\n return marker;\n }\n if (tag.value instanceof Uint8Array) {\n const bin = parseScte35Binary(tag.value);\n if (bin) return bin;\n }\n return void 0;\n}\nfunction normalizeFragmentPayload(payload) {\n if (payload instanceof Uint8Array) {\n return payload;\n }\n if (payload instanceof ArrayBuffer) {\n return new Uint8Array(payload);\n }\n if (ArrayBuffer.isView(payload)) {\n const view = payload;\n return new Uint8Array(view.buffer, view.byteOffset, view.byteLength);\n }\n return void 0;\n}\nfunction detectTsPacketFormat(data) {\n const packetSizes = [188, 192, 204];\n for (const packetSize of packetSizes) {\n const tsPayloadOffset = packetSize === 192 ? 4 : 0;\n for (let offset = 0; offset < packetSize; offset++) {\n let matchedPackets = 0;\n for (let packetStart = offset; packetStart + tsPayloadOffset < data.length && matchedPackets < 5; packetStart += packetSize) {\n if (data[packetStart + tsPayloadOffset] !== 71) {\n break;\n }\n matchedPackets++;\n }\n if (matchedPackets >= 2) {\n return { offset, packetSize, tsPayloadOffset };\n }\n }\n }\n return void 0;\n}\nfunction getPsiSectionStart(payload, payloadUnitStart) {\n if (!payloadUnitStart) {\n return void 0;\n }\n const pointerField = payload[0];\n if (pointerField == null) {\n return void 0;\n }\n const sectionStart = 1 + pointerField;\n return sectionStart < payload.length ? sectionStart : void 0;\n}\nfunction getPsiSectionLength(data, offset) {\n return ((data[offset + 1] ?? 0) & 15) << 8 | (data[offset + 2] ?? 0);\n}\nfunction parsePatSection(payload, payloadUnitStart, pmtPids) {\n const sectionStart = getPsiSectionStart(payload, payloadUnitStart);\n if (sectionStart == null || sectionStart + 8 >= payload.length) {\n return;\n }\n if (payload[sectionStart] !== 0) {\n return;\n }\n const sectionLength = getPsiSectionLength(payload, sectionStart);\n const sectionEnd = Math.min(\n payload.length,\n sectionStart + 3 + sectionLength\n );\n for (let offset = sectionStart + 8; offset + 4 <= sectionEnd - 4; offset += 4) {\n const programNumber = (payload[offset] ?? 0) << 8 | (payload[offset + 1] ?? 0);\n const pid = ((payload[offset + 2] ?? 0) & 31) << 8 | (payload[offset + 3] ?? 0);\n if (programNumber !== 0) {\n pmtPids.add(pid);\n }\n }\n}\nfunction descriptorsIdentifyScte35(data, start, end) {\n let offset = start;\n while (offset + 2 <= end) {\n const tag = data[offset] ?? 0;\n const length = data[offset + 1] ?? 0;\n const descriptorStart = offset + 2;\n const descriptorEnd = descriptorStart + length;\n if (descriptorEnd > end) {\n return false;\n }\n const registration = length >= 4 ? String.fromCharCode(\n data[descriptorStart] ?? 0,\n data[descriptorStart + 1] ?? 0,\n data[descriptorStart + 2] ?? 0,\n data[descriptorStart + 3] ?? 0\n ) : \"\";\n if (tag === 138 || registration === \"CUEI\" || registration === \"SCTE\") {\n return true;\n }\n offset = descriptorEnd;\n }\n return false;\n}\nfunction parsePmtSection(payload, payloadUnitStart, tsScte35Pids) {\n const sectionStart = getPsiSectionStart(payload, payloadUnitStart);\n if (sectionStart == null || sectionStart + 12 >= payload.length) {\n return;\n }\n if (payload[sectionStart] !== 2) {\n return;\n }\n const sectionLength = getPsiSectionLength(payload, sectionStart);\n const sectionEnd = Math.min(\n payload.length,\n sectionStart + 3 + sectionLength\n );\n const programInfoLength = ((payload[sectionStart + 10] ?? 0) & 15) << 8 | (payload[sectionStart + 11] ?? 0);\n let offset = sectionStart + 12 + programInfoLength;\n while (offset + 5 <= sectionEnd - 4) {\n const streamType = payload[offset] ?? 0;\n const elementaryPid = ((payload[offset + 1] ?? 0) & 31) << 8 | (payload[offset + 2] ?? 0);\n const esInfoLength = ((payload[offset + 3] ?? 0) & 15) << 8 | (payload[offset + 4] ?? 0);\n const descriptorStart = offset + 5;\n const descriptorEnd = Math.min(descriptorStart + esInfoLength, sectionEnd - 4);\n if (streamType === 134 || streamType === 6 && descriptorsIdentifyScte35(payload, descriptorStart, descriptorEnd)) {\n tsScte35Pids.add(elementaryPid);\n }\n offset = descriptorStart + esInfoLength;\n }\n}\nfunction hasProcessedTsScte35Section(section, processedSections) {\n let checksum = 0;\n for (let i = 0; i < section.length; i++) {\n checksum = checksum * 31 + (section[i] ?? 0) >>> 0;\n }\n const key = `${section.length}:${checksum}`;\n if (processedSections.has(key)) {\n return true;\n }\n processedSections.add(key);\n if (processedSections.size > 200) {\n const firstKey = processedSections.values().next().value;\n if (firstKey) {\n processedSections.delete(firstKey);\n }\n }\n return false;\n}\nfunction addScte35SectionMarker(section, markers, processedSections) {\n if (section[0] !== 252 || hasProcessedTsScte35Section(section, processedSections)) {\n return;\n }\n const marker = parseScte35Binary(section);\n if (!marker) {\n return;\n }\n marker.raw = {\n ...typeof marker.raw === \"object\" && marker.raw ? marker.raw : {},\n source: \"ts-packet\"\n };\n markers.push(marker);\n}\nfunction appendScte35Bytes(pid, bytes, assemblers, markers, processedSections) {\n const assembler = assemblers.get(pid);\n if (!assembler) {\n return;\n }\n for (let i = 0; i < bytes.length && assembler.bytes.length < assembler.expectedLength; i++) {\n assembler.bytes.push(bytes[i] ?? 0);\n }\n if (assembler.bytes.length >= assembler.expectedLength) {\n assemblers.delete(pid);\n addScte35SectionMarker(new Uint8Array(assembler.bytes), markers, processedSections);\n }\n}\nfunction collectScte35SectionsFromPayload(pid, payload, payloadUnitStart, assemblers, markers, processedSections) {\n if (payload.length === 0) {\n return;\n }\n let offset = 0;\n if (payloadUnitStart) {\n const pointerField = payload[0] ?? 0;\n const previousAssembler = assemblers.get(pid);\n if (previousAssembler && pointerField > 0) {\n appendScte35Bytes(\n pid,\n payload.subarray(1, Math.min(1 + pointerField, payload.length)),\n assemblers,\n markers,\n processedSections\n );\n }\n assemblers.delete(pid);\n offset = 1 + pointerField;\n } else {\n appendScte35Bytes(pid, payload, assemblers, markers, processedSections);\n return;\n }\n while (offset + 3 <= payload.length) {\n const tableId = payload[offset];\n if (tableId == null || tableId === 255) {\n return;\n }\n const sectionLength = getPsiSectionLength(payload, offset);\n const totalLength = 3 + sectionLength;\n if (sectionLength <= 0 || totalLength <= 3) {\n return;\n }\n if (offset + totalLength <= payload.length) {\n addScte35SectionMarker(\n payload.subarray(offset, offset + totalLength),\n markers,\n processedSections\n );\n offset += totalLength;\n } else {\n assemblers.set(pid, {\n bytes: Array.from(payload.subarray(offset)),\n expectedLength: totalLength\n });\n return;\n }\n }\n}\nfunction parseScte35FromTsPackets(data, tsScte35Pids, pmtPids, processedSections) {\n const packetInfo = detectTsPacketFormat(data);\n if (!packetInfo) {\n return [];\n }\n const markers = [];\n const sectionAssemblers = /* @__PURE__ */ new Map();\n for (let packetStart = packetInfo.offset; packetStart + packetInfo.packetSize <= data.length; packetStart += packetInfo.packetSize) {\n const tsStart = packetStart + packetInfo.tsPayloadOffset;\n if (data[tsStart] !== 71) {\n continue;\n }\n const secondByte = data[tsStart + 1];\n const thirdByte = data[tsStart + 2];\n const fourthByte = data[tsStart + 3];\n if (secondByte == null || thirdByte == null || fourthByte == null || (secondByte & 128) !== 0) {\n continue;\n }\n const payloadUnitStart = (secondByte & 64) !== 0;\n const pid = (secondByte & 31) << 8 | thirdByte;\n const adaptationFieldControl = fourthByte >> 4 & 3;\n const hasPayload = adaptationFieldControl === 1 || adaptationFieldControl === 3;\n if (!hasPayload) {\n continue;\n }\n let payloadStart = tsStart + 4;\n if (adaptationFieldControl === 3) {\n const adaptationLength = data[payloadStart];\n if (adaptationLength == null) {\n continue;\n }\n payloadStart += 1 + adaptationLength;\n }\n const payloadEnd = Math.min(tsStart + 188, data.length);\n if (payloadStart >= payloadEnd || payloadStart >= data.length) {\n continue;\n }\n const payload = data.subarray(payloadStart, payloadEnd);\n if (pid === 0) {\n parsePatSection(payload, payloadUnitStart, pmtPids);\n } else if (pmtPids.has(pid)) {\n parsePmtSection(payload, payloadUnitStart, tsScte35Pids);\n } else if (tsScte35Pids.has(pid)) {\n collectScte35SectionsFromPayload(\n pid,\n payload,\n payloadUnitStart,\n sectionAssemblers,\n markers,\n processedSections\n );\n }\n }\n return markers;\n}\nvar BitReader = class {\n constructor(buf) {\n this.buf = buf;\n this.bytePos = 0;\n this.bitPos = 0;\n }\n readBits(numBits) {\n let result = 0;\n while (numBits > 0) {\n if (this.bytePos >= this.buf.length) return result;\n const remainingInByte = 8 - this.bitPos;\n const toRead = Math.min(numBits, remainingInByte);\n const currentByte = this.buf[this.bytePos];\n const shift = remainingInByte - toRead;\n const mask = (1 << toRead) - 1 & 255;\n const bits = currentByte >> shift & mask;\n result = result << toRead | bits;\n this.bitPos += toRead;\n if (this.bitPos >= 8) {\n this.bitPos = 0;\n this.bytePos += 1;\n }\n numBits -= toRead;\n }\n return result >>> 0;\n }\n skipBits(n) {\n this.readBits(n);\n }\n get bytePosition() {\n return this.bitPos === 0 ? this.bytePos : this.bytePos + 1;\n }\n};\nfunction readSpliceTime(r, ptsAdjustmentTicks) {\n const timeSpecifiedFlag = r.readBits(1) === 1;\n if (!timeSpecifiedFlag) {\n r.readBits(7);\n return void 0;\n }\n r.readBits(6);\n const high = r.readBits(1);\n const low = r.readBits(32);\n const ptsTicks = (high * 4294967296 + low + ptsAdjustmentTicks) % 8589934592;\n return ptsTicks / 9e4;\n}\nfunction markerTypeFromSegmentationTypeId(segmentationTypeId) {\n switch (segmentationTypeId) {\n case 16:\n case 34:\n case 48:\n case 50:\n case 52:\n case 54:\n return \"start\";\n case 17:\n case 35:\n case 49:\n case 51:\n case 53:\n case 55:\n return \"end\";\n default:\n return void 0;\n }\n}\nfunction parseScte35SegmentationDescriptor(descriptor) {\n if (descriptor.length < 11) {\n return void 0;\n }\n const identifier = String.fromCharCode(\n descriptor[0] ?? 0,\n descriptor[1] ?? 0,\n descriptor[2] ?? 0,\n descriptor[3] ?? 0\n );\n if (identifier !== \"CUEI\") {\n return void 0;\n }\n const segmentationEventId = (descriptor[4] ?? 0) * 16777216 + ((descriptor[5] ?? 0) << 16) + ((descriptor[6] ?? 0) << 8) + (descriptor[7] ?? 0);\n const cancelIndicator = ((descriptor[8] ?? 0) & 128) !== 0;\n if (cancelIndicator) {\n return void 0;\n }\n const flags = descriptor[9] ?? 0;\n const programSegmentationFlag = (flags & 128) !== 0;\n const segmentationDurationFlag = (flags & 64) !== 0;\n let offset = 10;\n if (!programSegmentationFlag) {\n const componentCount = descriptor[offset] ?? 0;\n offset += 1 + componentCount * 6;\n if (offset > descriptor.length) {\n return void 0;\n }\n }\n let durationSeconds = void 0;\n if (segmentationDurationFlag) {\n if (offset + 5 > descriptor.length) {\n return void 0;\n }\n const durationTicks = (descriptor[offset] ?? 0) * 4294967296 + (descriptor[offset + 1] ?? 0) * 16777216 + ((descriptor[offset + 2] ?? 0) << 16) + ((descriptor[offset + 3] ?? 0) << 8) + (descriptor[offset + 4] ?? 0);\n durationSeconds = durationTicks / 9e4;\n offset += 5;\n }\n if (offset + 2 > descriptor.length) {\n return void 0;\n }\n offset += 1;\n const segmentationUpidLength = descriptor[offset] ?? 0;\n offset += 1 + segmentationUpidLength;\n if (offset >= descriptor.length) {\n return void 0;\n }\n const segmentationTypeId = descriptor[offset] ?? 0;\n const markerType = markerTypeFromSegmentationTypeId(segmentationTypeId);\n if (!markerType) {\n return void 0;\n }\n return {\n type: markerType,\n ...durationSeconds !== void 0 ? { durationSeconds } : {},\n segmentationEventId\n };\n}\nfunction parseScte35SegmentationDescriptors(data, offset) {\n if (offset + 2 > data.length) {\n return void 0;\n }\n const descriptorLoopLength = (data[offset] ?? 0) << 8 | (data[offset + 1] ?? 0);\n let descriptorOffset = offset + 2;\n const descriptorEnd = Math.min(\n data.length,\n descriptorOffset + descriptorLoopLength\n );\n while (descriptorOffset + 2 <= descriptorEnd) {\n const descriptorTag = data[descriptorOffset] ?? 0;\n const descriptorLength = data[descriptorOffset + 1] ?? 0;\n const descriptorDataStart = descriptorOffset + 2;\n const descriptorDataEnd = descriptorDataStart + descriptorLength;\n if (descriptorDataEnd > descriptorEnd) {\n return void 0;\n }\n if (descriptorTag === 2) {\n const descriptorMarker = parseScte35SegmentationDescriptor(\n data.subarray(descriptorDataStart, descriptorDataEnd)\n );\n if (descriptorMarker) {\n return descriptorMarker;\n }\n }\n descriptorOffset = descriptorDataEnd;\n }\n return void 0;\n}\nfunction parseScte35Binary(data) {\n const r = new BitReader(data);\n const tableId = r.readBits(8);\n if (tableId !== 252) return void 0;\n r.readBits(1);\n r.readBits(1);\n r.readBits(2);\n const sectionLength = r.readBits(12);\n if (sectionLength <= 0 || data.length < 3 + sectionLength) {\n return void 0;\n }\n r.readBits(8);\n r.readBits(1);\n r.readBits(6);\n const ptsAdjHigh = r.readBits(1);\n const ptsAdjLow = r.readBits(32);\n const ptsAdjustmentTicks = ptsAdjHigh * 4294967296 + ptsAdjLow;\n r.readBits(8);\n r.readBits(12);\n const spliceCommandLength = r.readBits(12);\n const spliceCommandType = r.readBits(8);\n let markerType;\n let durationSeconds = void 0;\n let ptsSeconds = void 0;\n let spliceEventId = void 0;\n const commandBodyStart = r.bytePosition;\n if (spliceCommandType === 5) {\n spliceEventId = r.readBits(32);\n const cancel = r.readBits(1) === 1;\n r.readBits(7);\n if (cancel) return void 0;\n const outOfNetwork = r.readBits(1) === 1;\n const programSpliceFlag = r.readBits(1) === 1;\n const durationFlag = r.readBits(1) === 1;\n const spliceImmediateFlag = r.readBits(1) === 1;\n r.readBits(4);\n markerType = outOfNetwork ? \"start\" : \"end\";\n if (programSpliceFlag && !spliceImmediateFlag) {\n ptsSeconds = readSpliceTime(r, ptsAdjustmentTicks);\n } else if (!programSpliceFlag) {\n const componentCount = r.readBits(8);\n for (let i = 0; i < componentCount; i++) {\n r.readBits(8);\n if (!spliceImmediateFlag) {\n const componentPtsSeconds = readSpliceTime(r, ptsAdjustmentTicks);\n if (ptsSeconds === void 0) {\n ptsSeconds = componentPtsSeconds;\n }\n }\n }\n }\n if (durationFlag) {\n r.readBits(6);\n r.readBits(1);\n const high = r.readBits(1);\n const low = r.readBits(32);\n const durationTicks = high * 4294967296 + low;\n durationSeconds = durationTicks / 9e4;\n }\n r.readBits(16);\n r.readBits(8);\n r.readBits(8);\n } else if (spliceCommandType === 6) {\n ptsSeconds = readSpliceTime(r, ptsAdjustmentTicks);\n } else {\n return void 0;\n }\n const expectedDescriptorOffset = spliceCommandLength === 4095 ? r.bytePosition : commandBodyStart + spliceCommandLength;\n const descriptorMarker = parseScte35SegmentationDescriptors(\n data,\n expectedDescriptorOffset\n );\n if (descriptorMarker) {\n markerType = descriptorMarker.type;\n if (durationSeconds === void 0) {\n durationSeconds = descriptorMarker.durationSeconds;\n }\n }\n if (!markerType) {\n return void 0;\n }\n const marker = {\n type: markerType,\n ...ptsSeconds !== void 0 ? { ptsSeconds } : {},\n ...durationSeconds !== void 0 ? { durationSeconds } : {},\n raw: {\n splice_command_type: spliceCommandType,\n ...spliceEventId !== void 0 ? { splice_event_id: spliceEventId } : {},\n ...descriptorMarker?.segmentationEventId !== void 0 ? { segmentation_event_id: descriptorMarker.segmentationEventId } : {}\n }\n };\n return marker;\n}\n// Annotate the CommonJS export names for ESM import in node:\n0 && (module.exports = {\n decodeId3ValueToText,\n detectTsPacketFormat,\n getDateRangeDurationSeconds,\n getFragmentStartSeconds,\n isManifestBasedMarker,\n normalizeFragmentPayload,\n parseAttributeList,\n parseCueOutCont,\n parseCueOutDuration,\n parseScte35Binary,\n parseScte35FromId3,\n parseScte35FromTsPackets,\n toNumber\n});\n"]}
@@ -7,6 +7,7 @@ declare function parseCueOutCont(value: string): {
7
7
  } | undefined;
8
8
  declare function parseAttributeList(value: string): Record<string, string>;
9
9
  declare function toNumber(val: unknown): number | undefined;
10
+ declare function getDateRangeDurationSeconds(attrs: Record<string, string>): number | undefined;
10
11
  declare function isManifestBasedMarker(marker: Scte35Marker): boolean;
11
12
  declare function decodeId3ValueToText(value: string | Uint8Array): string | undefined;
12
13
  declare function getFragmentStartSeconds(frag: any): number | undefined;
@@ -20,4 +21,4 @@ declare function detectTsPacketFormat(data: Uint8Array): {
20
21
  declare function parseScte35FromTsPackets(data: Uint8Array, tsScte35Pids: Set<number>, pmtPids: Set<number>, processedSections: Set<string>): Scte35Marker[];
21
22
  declare function parseScte35Binary(data: Uint8Array): Scte35Marker | undefined;
22
23
 
23
- export { decodeId3ValueToText, detectTsPacketFormat, getFragmentStartSeconds, isManifestBasedMarker, normalizeFragmentPayload, parseAttributeList, parseCueOutCont, parseCueOutDuration, parseScte35Binary, parseScte35FromId3, parseScte35FromTsPackets, toNumber };
24
+ export { decodeId3ValueToText, detectTsPacketFormat, getDateRangeDurationSeconds, getFragmentStartSeconds, isManifestBasedMarker, normalizeFragmentPayload, parseAttributeList, parseCueOutCont, parseCueOutDuration, parseScte35Binary, parseScte35FromId3, parseScte35FromTsPackets, toNumber };
@@ -6400,6 +6400,10 @@ function toNumber(val) {
6400
6400
  var n = typeof val === "string" ? parseFloat(val) : Number(val);
6401
6401
  return Number.isNaN(n) ? void 0 : n;
6402
6402
  }
6403
+ function getDateRangeDurationSeconds(attrs) {
6404
+ var _toNumber;
6405
+ return (_toNumber = toNumber(attrs["DURATION"])) !== null && _toNumber !== void 0 ? _toNumber : toNumber(attrs["PLANNED-DURATION"]);
6406
+ }
6403
6407
  function isManifestBasedMarker(marker) {
6404
6408
  var raw = marker.raw;
6405
6409
  if (!raw) return false;
@@ -8765,11 +8769,13 @@ var HlsEngine = /*#__PURE__*/ function() {
8765
8769
  }
8766
8770
  }
8767
8771
  if (!tag) continue;
8772
+ if (tag.includes("EXT-X-CUE-OUT-CONT")) continue;
8768
8773
  if (tag.includes("EXT-X-CUE-OUT") || tag.includes("EXT-X-DATERANGE")) {
8769
- var attrs = tag.includes("EXT-X-DATERANGE") ? parseAttributeList(value) : {};
8774
+ var isDateRange = tag.includes("EXT-X-DATERANGE");
8775
+ var attrs = isDateRange ? parseAttributeList(value) : {};
8770
8776
  var hasScteOut = tag.includes("EXT-X-CUE-OUT") || "SCTE35-OUT" in attrs || attrs["SCTE35-OUT"] !== void 0;
8771
8777
  if (hasScteOut) {
8772
- var durationSeconds = parseCueOutDuration(value);
8778
+ var durationSeconds = isDateRange ? getDateRangeDurationSeconds(attrs) : parseCueOutDuration(value);
8773
8779
  var marker = _object_spread_props(_object_spread({
8774
8780
  type: "start"
8775
8781
  }, durationSeconds !== void 0 ? {
@@ -8943,7 +8949,7 @@ var HlsEngine = /*#__PURE__*/ function() {
8943
8949
  var hasScteOut = "SCTE35-OUT" in attrs || attrs["SCTE35-OUT"] !== void 0;
8944
8950
  var hasScteIn = "SCTE35-IN" in attrs || attrs["SCTE35-IN"] !== void 0;
8945
8951
  var klass = String((_attrs_CLASS = attrs["CLASS"]) !== null && _attrs_CLASS !== void 0 ? _attrs_CLASS : "");
8946
- var duration = toNumber(attrs["DURATION"]);
8952
+ var duration = getDateRangeDurationSeconds(attrs);
8947
8953
  if (hasScteOut || /com\.apple\.hls\.cue/i.test(klass)) {
8948
8954
  var marker2 = _object_spread_props(_object_spread({
8949
8955
  type: "start"
@@ -9210,19 +9216,31 @@ var HlsEngine = /*#__PURE__*/ function() {
9210
9216
  // src/player/EdgePodRequest.ts
9211
9217
  var EDGE_POD_MAX_ADS = 10;
9212
9218
  var EDGE_POD_EXCEEDS_BUDGET = "edge_pod_exceeds_budget";
9219
+ var LICENSE_KEY_PLACEHOLDER = /\{licenseKey\}|%7BlicenseKey%7D/gi;
9213
9220
  function resolveEdgePodBaseUrl(config) {
9214
- var _config_edgePodUrl;
9221
+ var _config_edgePodUrl, _config_licenseKey;
9215
9222
  if (config.enableEdgePodRequest !== true) return void 0;
9216
9223
  var raw = (_config_edgePodUrl = config.edgePodUrl) === null || _config_edgePodUrl === void 0 ? void 0 : _config_edgePodUrl.trim();
9217
9224
  if (!raw) {
9218
9225
  console.warn("[AdBreak][EDGE] enableEdgePodRequest is true but edgePodUrl is missing; using GAM only");
9219
9226
  return void 0;
9220
9227
  }
9228
+ var licenseKey = (_config_licenseKey = config.licenseKey) === null || _config_licenseKey === void 0 ? void 0 : _config_licenseKey.trim();
9229
+ if (!licenseKey) {
9230
+ console.warn("[AdBreak][EDGE] enableEdgePodRequest is true but licenseKey is missing; using GAM only");
9231
+ return void 0;
9232
+ }
9233
+ var encodedKey = encodeURIComponent(licenseKey);
9221
9234
  try {
9222
- var url = new URL(raw);
9235
+ var hasPlaceholder = raw.search(LICENSE_KEY_PLACEHOLDER) !== -1;
9236
+ var url = new URL(hasPlaceholder ? raw.replace(LICENSE_KEY_PLACEHOLDER, encodedKey) : raw);
9223
9237
  if (url.protocol !== "https:" && url.protocol !== "http:") {
9224
9238
  throw new Error("unsupported protocol ".concat(url.protocol));
9225
9239
  }
9240
+ if (!hasPlaceholder) {
9241
+ var path = url.pathname.replace(/\/+$/, "");
9242
+ url.pathname = /\/[^/]+\/pod$/.test(path) ? path.replace(/\/[^/]+\/pod$/, "/".concat(encodedKey, "/pod")) : "".concat(path, "/").concat(encodedKey, "/pod");
9243
+ }
9226
9244
  return url.toString();
9227
9245
  } catch (unused) {
9228
9246
  console.warn("[AdBreak][EDGE] edgePodUrl is not a valid http(s) URL; using GAM only");
@@ -11700,6 +11718,25 @@ var StormcloudVideoPlayer = /*#__PURE__*/ function() {
11700
11718
  return this.floorLadderEnabled;
11701
11719
  }
11702
11720
  },
11721
+ {
11722
+ key: "setEdgePodRequest",
11723
+ value: function setEdgePodRequest(update) {
11724
+ if (update.enableEdgePodRequest === this.config.enableEdgePodRequest && update.edgePodUrl === this.config.edgePodUrl) {
11725
+ return;
11726
+ }
11727
+ if (update.enableEdgePodRequest === void 0) delete this.config.enableEdgePodRequest;
11728
+ else this.config.enableEdgePodRequest = update.enableEdgePodRequest;
11729
+ if (update.edgePodUrl === void 0) delete this.config.edgePodUrl;
11730
+ else this.config.edgePodUrl = update.edgePodUrl;
11731
+ this.edgePodBaseUrl = resolveEdgePodBaseUrl(this.config);
11732
+ }
11733
+ },
11734
+ {
11735
+ key: "getEdgePodUrl",
11736
+ value: function getEdgePodUrl() {
11737
+ return this.edgePodBaseUrl;
11738
+ }
11739
+ },
11703
11740
  {
11704
11741
  key: "warnOnInvalidFloorLadder",
11705
11742
  value: function warnOnInvalidFloorLadder(report) {