stormcloud-video-player 0.8.71 → 0.8.73

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"
@@ -10120,7 +10126,7 @@ var AdBreakOrchestrator = /*#__PURE__*/ function() {
10120
10126
  key: "runEdgePod",
10121
10127
  value: function runEdgePod(requestUrl, trigger) {
10122
10128
  return _async_to_generator(function() {
10123
- var _params_get, _params_get1, epoch, generation, adPlayer, requestToken, params, _ref, _adPlayer_getPodAdCount, _adPlayer_getPodTotalDurationMs, remainingMs, remainingAds, podCount, error, errorMessage, classification, diag;
10129
+ var _params_get, _params_get1, epoch, generation, adPlayer, requestToken, params, _this_host_config_maxAdBreakExtensionMs, _ref, _adPlayer_getPodAdCount, _adPlayer_getPodTotalDurationMs, remainingMs, remainingAds, overrunAllowanceMs, podCount, error, errorMessage, classification, diag;
10124
10130
  return _ts_generator(this, function(_state) {
10125
10131
  switch(_state.label){
10126
10132
  case 0:
@@ -10175,7 +10181,8 @@ var AdBreakOrchestrator = /*#__PURE__*/ function() {
10175
10181
  }
10176
10182
  remainingMs = this.timing.getRemainingAdMs();
10177
10183
  remainingAds = Math.max(1, Math.min(EDGE_POD_MAX_ADS, this.adConfig.resolvePodParams().maxAds - this.timing.totalAdsInBreak));
10178
- podCount = adPlayer.limitPodToBudget ? adPlayer.limitPodToBudget(remainingMs, remainingAds) : (_ref = (_adPlayer_getPodAdCount = adPlayer.getPodAdCount) === null || _adPlayer_getPodAdCount === void 0 ? void 0 : _adPlayer_getPodAdCount.call(adPlayer)) !== null && _ref !== void 0 ? _ref : 0;
10184
+ overrunAllowanceMs = Math.max(0, (_this_host_config_maxAdBreakExtensionMs = this.host.config.maxAdBreakExtensionMs) !== null && _this_host_config_maxAdBreakExtensionMs !== void 0 ? _this_host_config_maxAdBreakExtensionMs : 0);
10185
+ podCount = adPlayer.limitPodToBudget ? adPlayer.limitPodToBudget(remainingMs + overrunAllowanceMs, remainingAds) : (_ref = (_adPlayer_getPodAdCount = adPlayer.getPodAdCount) === null || _adPlayer_getPodAdCount === void 0 ? void 0 : _adPlayer_getPodAdCount.call(adPlayer)) !== null && _ref !== void 0 ? _ref : 0;
10179
10186
  if (classifyEdgeVastResponse({
10180
10187
  podAdCount: podCount
10181
10188
  }) !== "fill") {
@@ -10185,7 +10192,8 @@ var AdBreakOrchestrator = /*#__PURE__*/ function() {
10185
10192
  this.logOrchestratorFunnel("edge_fill", {
10186
10193
  podAdCount: podCount,
10187
10194
  podDurationMs: (_adPlayer_getPodTotalDurationMs = adPlayer.getPodTotalDurationMs) === null || _adPlayer_getPodTotalDurationMs === void 0 ? void 0 : _adPlayer_getPodTotalDurationMs.call(adPlayer),
10188
- remainingMs: remainingMs
10195
+ remainingMs: remainingMs,
10196
+ overrunAllowanceMs: overrunAllowanceMs
10189
10197
  });
10190
10198
  sendAdLoadedTracking(this.host.config.licenseKey, {
10191
10199
  source: "hls",