prismcast 1.13.0 → 1.14.0

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.
Files changed (218) hide show
  1. package/dist/app.d.ts +88 -6
  2. package/dist/app.js +287 -154
  3. package/dist/app.js.map +1 -1
  4. package/dist/browser/cdp.d.ts +6 -17
  5. package/dist/browser/cdp.js +6 -57
  6. package/dist/browser/cdp.js.map +1 -1
  7. package/dist/browser/index.d.ts +106 -23
  8. package/dist/browser/index.js +292 -225
  9. package/dist/browser/index.js.map +1 -1
  10. package/dist/browser/precaching.d.ts +25 -11
  11. package/dist/browser/precaching.js +245 -97
  12. package/dist/browser/precaching.js.map +1 -1
  13. package/dist/browser/tabCapture.js +3 -10
  14. package/dist/browser/tabCapture.js.map +1 -1
  15. package/dist/browser/tuning/comcastPolymer.js +13 -14
  16. package/dist/browser/tuning/comcastPolymer.js.map +1 -1
  17. package/dist/browser/tuning/hbo.js +34 -17
  18. package/dist/browser/tuning/hbo.js.map +1 -1
  19. package/dist/browser/video.d.ts +1 -1
  20. package/dist/browser/video.js +3 -3
  21. package/dist/channels/index.js +5 -5
  22. package/dist/channels/index.js.map +1 -1
  23. package/dist/cliHelp.d.ts +11 -0
  24. package/dist/cliHelp.js +148 -0
  25. package/dist/cliHelp.js.map +1 -0
  26. package/dist/config/channelForm.js +5 -4
  27. package/dist/config/channelForm.js.map +1 -1
  28. package/dist/config/consistencyProbe.d.ts +2 -4
  29. package/dist/config/consistencyProbe.js +8 -51
  30. package/dist/config/consistencyProbe.js.map +1 -1
  31. package/dist/config/index.d.ts +107 -55
  32. package/dist/config/index.js +499 -267
  33. package/dist/config/index.js.map +1 -1
  34. package/dist/config/paths.d.ts +13 -8
  35. package/dist/config/paths.js +21 -25
  36. package/dist/config/paths.js.map +1 -1
  37. package/dist/config/persistence.d.ts +57 -11
  38. package/dist/config/persistence.js +127 -44
  39. package/dist/config/persistence.js.map +1 -1
  40. package/dist/config/reactivity.d.ts +60 -36
  41. package/dist/config/reactivity.js +89 -116
  42. package/dist/config/reactivity.js.map +1 -1
  43. package/dist/config/services.d.ts +61 -26
  44. package/dist/config/services.js +137 -68
  45. package/dist/config/services.js.map +1 -1
  46. package/dist/config/streamSettings.d.ts +24 -0
  47. package/dist/config/streamSettings.js +17 -0
  48. package/dist/config/streamSettings.js.map +1 -0
  49. package/dist/config/userChannels.d.ts +60 -52
  50. package/dist/config/userChannels.js +138 -188
  51. package/dist/config/userChannels.js.map +1 -1
  52. package/dist/config/userConfig.d.ts +224 -61
  53. package/dist/config/userConfig.js +351 -134
  54. package/dist/config/userConfig.js.map +1 -1
  55. package/dist/hdhr/discover.d.ts +7 -1
  56. package/dist/hdhr/discover.js +12 -6
  57. package/dist/hdhr/discover.js.map +1 -1
  58. package/dist/hdhr/index.d.ts +51 -10
  59. package/dist/hdhr/index.js +108 -112
  60. package/dist/hdhr/index.js.map +1 -1
  61. package/dist/hdhr/udp.d.ts +11 -4
  62. package/dist/hdhr/udp.js +25 -20
  63. package/dist/hdhr/udp.js.map +1 -1
  64. package/dist/index.js +16 -143
  65. package/dist/index.js.map +1 -1
  66. package/dist/native/index.d.ts +1 -1
  67. package/dist/native/index.js +4 -3
  68. package/dist/native/index.js.map +1 -1
  69. package/dist/native/proxy.d.ts +1 -1
  70. package/dist/native/proxy.js +36 -28
  71. package/dist/native/proxy.js.map +1 -1
  72. package/dist/routes/cdp.d.ts +7 -6
  73. package/dist/routes/cdp.js +9 -8
  74. package/dist/routes/cdp.js.map +1 -1
  75. package/dist/routes/components.d.ts +23 -5
  76. package/dist/routes/components.js +21 -4
  77. package/dist/routes/components.js.map +1 -1
  78. package/dist/routes/config/channels/endpoints/browse.js +39 -29
  79. package/dist/routes/config/channels/endpoints/browse.js.map +1 -1
  80. package/dist/routes/config/channels/endpoints/bulk.js +2 -6
  81. package/dist/routes/config/channels/endpoints/bulk.js.map +1 -1
  82. package/dist/routes/config/channels/endpoints/predefined.js +5 -15
  83. package/dist/routes/config/channels/endpoints/predefined.js.map +1 -1
  84. package/dist/routes/config/channels/endpoints/prefs.js +7 -6
  85. package/dist/routes/config/channels/endpoints/prefs.js.map +1 -1
  86. package/dist/routes/config/channels/endpoints/service.js +6 -5
  87. package/dist/routes/config/channels/endpoints/service.js.map +1 -1
  88. package/dist/routes/config/channels/endpoints/tags.js +4 -16
  89. package/dist/routes/config/channels/endpoints/tags.js.map +1 -1
  90. package/dist/routes/config/channels/table.d.ts +2 -1
  91. package/dist/routes/config/channels/table.js +11 -13
  92. package/dist/routes/config/channels/table.js.map +1 -1
  93. package/dist/routes/config/http/envelope.d.ts +6 -3
  94. package/dist/routes/config/http/envelope.js +18 -5
  95. package/dist/routes/config/http/envelope.js.map +1 -1
  96. package/dist/routes/config/index.d.ts +21 -13
  97. package/dist/routes/config/index.js +47 -34
  98. package/dist/routes/config/index.js.map +1 -1
  99. package/dist/routes/config/settings.d.ts +43 -6
  100. package/dist/routes/config/settings.js +225 -125
  101. package/dist/routes/config/settings.js.map +1 -1
  102. package/dist/routes/config/vocabulary.d.ts +24 -0
  103. package/dist/routes/config/vocabulary.js +33 -0
  104. package/dist/routes/config/vocabulary.js.map +1 -0
  105. package/dist/routes/debug.js +28 -13
  106. package/dist/routes/debug.js.map +1 -1
  107. package/dist/routes/root/content.js +33 -26
  108. package/dist/routes/root/content.js.map +1 -1
  109. package/dist/routes/root/scripts/channels.js +23 -11
  110. package/dist/routes/root/scripts/channels.js.map +1 -1
  111. package/dist/routes/root/scripts/config.d.ts +1 -1
  112. package/dist/routes/root/scripts/config.js +127 -79
  113. package/dist/routes/root/scripts/config.js.map +1 -1
  114. package/dist/routes/root/scripts/shared.js +34 -23
  115. package/dist/routes/root/scripts/shared.js.map +1 -1
  116. package/dist/routes/root/scripts/status.handlers.d.ts +8 -13
  117. package/dist/routes/root/scripts/status.handlers.js +35 -21
  118. package/dist/routes/root/scripts/status.handlers.js.map +1 -1
  119. package/dist/routes/root/styles.js +13 -16
  120. package/dist/routes/root/styles.js.map +1 -1
  121. package/dist/routes/services.js +12 -16
  122. package/dist/routes/services.js.map +1 -1
  123. package/dist/routes/theme.js +12 -12
  124. package/dist/routes/theme.js.map +1 -1
  125. package/dist/routes/ui.d.ts +4 -3
  126. package/dist/routes/ui.js +17 -13
  127. package/dist/routes/ui.js.map +1 -1
  128. package/dist/service/generators.js +12 -9
  129. package/dist/service/generators.js.map +1 -1
  130. package/dist/streaming/captureSession.d.ts +4 -4
  131. package/dist/streaming/captureSession.js +6 -7
  132. package/dist/streaming/captureSession.js.map +1 -1
  133. package/dist/streaming/codec.d.ts +12 -2
  134. package/dist/streaming/codec.js +40 -28
  135. package/dist/streaming/codec.js.map +1 -1
  136. package/dist/streaming/fmp4Segmenter.d.ts +14 -4
  137. package/dist/streaming/fmp4Segmenter.js +99 -79
  138. package/dist/streaming/fmp4Segmenter.js.map +1 -1
  139. package/dist/streaming/hls.d.ts +21 -14
  140. package/dist/streaming/hls.js +148 -122
  141. package/dist/streaming/hls.js.map +1 -1
  142. package/dist/streaming/hlsResume.d.ts +36 -13
  143. package/dist/streaming/hlsResume.js +68 -37
  144. package/dist/streaming/hlsResume.js.map +1 -1
  145. package/dist/streaming/monitor.d.ts +5 -3
  146. package/dist/streaming/monitor.js +47 -37
  147. package/dist/streaming/monitor.js.map +1 -1
  148. package/dist/streaming/mp4Parser.d.ts +29 -4
  149. package/dist/streaming/mp4Parser.js +49 -7
  150. package/dist/streaming/mp4Parser.js.map +1 -1
  151. package/dist/streaming/playlistBuilder.d.ts +1 -2
  152. package/dist/streaming/playlistBuilder.js +2 -3
  153. package/dist/streaming/playlistBuilder.js.map +1 -1
  154. package/dist/streaming/preroll.d.ts +43 -16
  155. package/dist/streaming/preroll.js +112 -62
  156. package/dist/streaming/preroll.js.map +1 -1
  157. package/dist/streaming/pretune.d.ts +2 -2
  158. package/dist/streaming/pretune.js +11 -7
  159. package/dist/streaming/pretune.js.map +1 -1
  160. package/dist/streaming/recovery.d.ts +29 -2
  161. package/dist/streaming/recovery.js +43 -4
  162. package/dist/streaming/recovery.js.map +1 -1
  163. package/dist/streaming/registry.d.ts +13 -10
  164. package/dist/streaming/registry.js +6 -5
  165. package/dist/streaming/registry.js.map +1 -1
  166. package/dist/streaming/setup.d.ts +29 -20
  167. package/dist/streaming/setup.js +181 -170
  168. package/dist/streaming/setup.js.map +1 -1
  169. package/dist/streaming/showInfo.d.ts +24 -12
  170. package/dist/streaming/showInfo.js +120 -113
  171. package/dist/streaming/showInfo.js.map +1 -1
  172. package/dist/streaming/statusEmitter.d.ts +15 -10
  173. package/dist/streaming/statusEmitter.js +24 -20
  174. package/dist/streaming/statusEmitter.js.map +1 -1
  175. package/dist/types/config.d.ts +24 -13
  176. package/dist/types/config.js +5 -1
  177. package/dist/types/config.js.map +1 -1
  178. package/dist/types/index.d.ts +3 -2
  179. package/dist/types/index.js +2 -1
  180. package/dist/types/index.js.map +1 -1
  181. package/dist/types/profiles.d.ts +2 -2
  182. package/dist/types/selection.d.ts +12 -10
  183. package/dist/types/streaming.d.ts +12 -5
  184. package/dist/types/streaming.js +12 -5
  185. package/dist/types/streaming.js.map +1 -1
  186. package/dist/utils/debugFilter.d.ts +3 -2
  187. package/dist/utils/debugFilter.js +7 -5
  188. package/dist/utils/debugFilter.js.map +1 -1
  189. package/dist/{hdhr → utils}/deviceId.d.ts +1 -1
  190. package/dist/{hdhr → utils}/deviceId.js +11 -29
  191. package/dist/utils/deviceId.js.map +1 -0
  192. package/dist/utils/errors.d.ts +7 -0
  193. package/dist/utils/errors.js +12 -3
  194. package/dist/utils/errors.js.map +1 -1
  195. package/dist/utils/fileLogger.d.ts +23 -12
  196. package/dist/utils/fileLogger.js +73 -41
  197. package/dist/utils/fileLogger.js.map +1 -1
  198. package/dist/utils/httpErrors.d.ts +13 -0
  199. package/dist/utils/httpErrors.js +22 -0
  200. package/dist/utils/httpErrors.js.map +1 -0
  201. package/dist/utils/index.d.ts +3 -0
  202. package/dist/utils/index.js +3 -0
  203. package/dist/utils/index.js.map +1 -1
  204. package/dist/utils/logger.d.ts +9 -8
  205. package/dist/utils/logger.js +64 -20
  206. package/dist/utils/logger.js.map +1 -1
  207. package/dist/utils/markup.js +8 -3
  208. package/dist/utils/markup.js.map +1 -1
  209. package/dist/utils/plainObject.d.ts +6 -0
  210. package/dist/utils/plainObject.js +18 -0
  211. package/dist/utils/plainObject.js.map +1 -0
  212. package/dist/utils/runtimeIdentity.context.js +1 -29
  213. package/dist/utils/runtimeIdentity.context.js.map +1 -1
  214. package/dist/utils/runtimeIdentity.d.ts +17 -6
  215. package/dist/utils/runtimeIdentity.js +50 -17
  216. package/dist/utils/runtimeIdentity.js.map +1 -1
  217. package/package.json +5 -5
  218. package/dist/hdhr/deviceId.js.map +0 -1
@@ -310,9 +310,10 @@ function extractFirstSampleFlags(data, offset, size, defaultSampleFlags) {
310
310
  }
311
311
  /**
312
312
  * Detects whether a moof box starts with a keyframe (sync sample) by examining the sample flags of the first sample in each trun box. The detection inspects all traf
313
- * boxes within the moof to handle multi-track containers (e.g., separate audio and video tracks). A non-keyframe signal from any traf (sample_depends_on === 1) takes
314
- * precedence because audio tracks are always independently decodable - the only source of sample_depends_on === 1 is a non-keyframe video track. This avoids needing
315
- * to map track IDs back to the moov box's codec metadata.
313
+ * boxes within the moof to handle multi-track containers (e.g., separate audio and video tracks). A non-keyframe signal from any traf - a first sample that
314
+ * evaluateSampleFlags classifies as non-sync, whether from sample_depends_on === 1 or from the sample_is_non_sync_sample bit - takes precedence, on the assumption
315
+ * that audio tracks never set either one, so the only source of the signal is a non-keyframe video track. This avoids needing to map track IDs back to the moov
316
+ * box's codec metadata.
316
317
  *
317
318
  * The function checks three flag sources in priority order per the ISO 14496-12 spec: trun first_sample_flags (0x004), trun per-sample flags (0x400), and tfhd
318
319
  * default_sample_flags (0x020).
@@ -351,9 +352,9 @@ export function detectMoofKeyframe(moofData) {
351
352
  }
352
353
  });
353
354
  });
354
- // A non-keyframe traf (video track with sample_depends_on === 1) overrides keyframe trafs. Audio tracks are always sync (sample_depends_on === 2, or 0 for unknown),
355
- // so the presence of any non-keyframe signal is the definitive indicator that this fragment does not start with a video keyframe. TypeScript's control flow analysis
356
- // cannot track mutations made inside the iterateChildBoxes callback, so these variables appear "always falsy" to the linter despite being set to true at runtime.
355
+ // A non-keyframe traf overrides keyframe trafs. Audio tracks are assumed never to set sample_depends_on === 1 or the non-sync bit, so the presence of any
356
+ // non-keyframe signal is taken as the indicator that this fragment does not start with a video keyframe. TypeScript's control flow analysis cannot track
357
+ // mutations made inside the iterateChildBoxes callback, so these variables appear "always falsy" to the linter despite being set to true at runtime.
357
358
  // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition
358
359
  if (hasExplicitNonKeyframe) {
359
360
  return false;
@@ -437,7 +438,9 @@ function extractTrunTotalDuration(data, offset, size, defaultSampleDuration) {
437
438
  /**
438
439
  * Applies a constant per-track offset to Chrome's original tfdt.baseMediaDecodeTime values. Reads Chrome's original tfdt, adds the per-track offset, and writes back.
439
440
  * During normal playback the offset is 0 (pure pass-through of Chrome's wall-clock-based timestamps). At tab replacement boundaries the offset bridges the PTS
440
- * discontinuity - it is computed once per track from the difference between the previous segmenter's "next expected" value and Chrome's new starting tfdt.
441
+ * discontinuity. The caller computes it once per track from the shared timeline position computeTimelinePosition derives, so the tracks share one reference, and
442
+ * falls back to the per-track difference between the previous segmenter's "next expected" value and Chrome's new starting tfdt (offset = initialTrackTimestamp -
443
+ * originalTfdt) when the timescales are unavailable.
441
444
  *
442
445
  * This approach preserves Chrome's inter-track synchronization. Chrome uses wall-clock-based timestamps that keep audio and video aligned regardless of frame drops.
443
446
  *
@@ -600,6 +603,45 @@ export function parseMoovTrackInfo(moovData) {
600
603
  });
601
604
  return result;
602
605
  }
606
+ /**
607
+ * Extracts per-track metadata from an init segment, the ftyp box followed by the moov box. The box parser walks the segment's top-level boxes to find the moov,
608
+ * which parseMoovTrackInfo then reads; handed the whole init segment, parseMoovTrackInfo would read the ftyp's header as its parent's and find no track.
609
+ * @param initSegment - The init segment buffer.
610
+ * @returns Map from track_ID to track info, or an empty map when the buffer carries no complete moov box.
611
+ */
612
+ export function parseInitSegmentTrackInfo(initSegment) {
613
+ let moovBox = null;
614
+ const parser = createMP4BoxParser((box) => {
615
+ if (box.type === "moov") {
616
+ moovBox = box.data;
617
+ }
618
+ });
619
+ parser.push(initSegment);
620
+ parser.flush();
621
+ // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition -- moovBox is set inside the parser callback; TS can't track closure mutations.
622
+ return moovBox ? parseMoovTrackInfo(moovBox) : new Map();
623
+ }
624
+ /**
625
+ * Converts per-track decode-time counters into one position on the timeline the tracks share, in seconds: each counter over its track's timescale, averaged
626
+ * across the tracks that carry both. A continuing segmenter derives every track's offset from this one position, so the tracks share a reference rather than
627
+ * freezing the jitter between them, and the resume line reports the same position from the counters a previous session persisted.
628
+ * @param options - The tracks' timescales and counters.
629
+ * @returns The position in seconds, or null when no track carries both a counter and a positive timescale.
630
+ */
631
+ export function computeTimelinePosition(options) {
632
+ const { timescales, trackTimestamps } = options;
633
+ let totalSec = 0;
634
+ let count = 0;
635
+ for (const [trackId, timestamp] of trackTimestamps) {
636
+ const timescale = timescales.get(trackId);
637
+ if ((timescale === undefined) || (timescale <= 0)) {
638
+ continue;
639
+ }
640
+ totalSec += Number(timestamp) / timescale;
641
+ count++;
642
+ }
643
+ return (count > 0) ? (totalSec / count) : null;
644
+ }
603
645
  /**
604
646
  * Reads an MPEG-4 ES_Descriptor variable-length size field at the given offset. The encoding is continuation-bit based: each byte contributes 7 bits of size
605
647
  * value, and a high bit (0x80) means another byte follows. Returns the accumulated length and the offset where the descriptor's payload starts (one past the
@@ -1 +1 @@
1
- {"version":3,"file":"mp4Parser.js","sourceRoot":"","sources":["../../src/streaming/mp4Parser.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"mp4Parser.js","sourceRoot":"","sources":["../../src/streaming/mp4Parser.ts"],"names":[],"mappings":"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"}
@@ -28,8 +28,7 @@ export interface PlaylistOptions {
28
28
  * in PrismCast - the capture-mode fMP4 segmenter, the native HLS proxy, and the standalone preroll playlist. The builder is stateless and pure: it iterates the
29
29
  * entries, emits the appropriate HLS tags for each, and returns the formatted m3u8 string.
30
30
  *
31
- * Per-segment tag ordering follows the HLS spec and preserves the ordering used by both existing generators: DISCONTINUITY, MAP, PROGRAM-DATE-TIME, CUE-IN,
32
- * CUE-OUT, CUE-OUT-CONT, EXTINF, then the segment URL.
31
+ * Per-segment tag ordering follows the HLS spec: DISCONTINUITY, MAP, PROGRAM-DATE-TIME, CUE-IN, CUE-OUT, CUE-OUT-CONT, EXTINF, then the segment URL.
33
32
  *
34
33
  * @param options - Playlist-level configuration (version, sequence numbers, init segment, target duration).
35
34
  * @param entries - Ordered array of segment entries to format.
@@ -8,8 +8,7 @@
8
8
  * in PrismCast - the capture-mode fMP4 segmenter, the native HLS proxy, and the standalone preroll playlist. The builder is stateless and pure: it iterates the
9
9
  * entries, emits the appropriate HLS tags for each, and returns the formatted m3u8 string.
10
10
  *
11
- * Per-segment tag ordering follows the HLS spec and preserves the ordering used by both existing generators: DISCONTINUITY, MAP, PROGRAM-DATE-TIME, CUE-IN,
12
- * CUE-OUT, CUE-OUT-CONT, EXTINF, then the segment URL.
11
+ * Per-segment tag ordering follows the HLS spec: DISCONTINUITY, MAP, PROGRAM-DATE-TIME, CUE-IN, CUE-OUT, CUE-OUT-CONT, EXTINF, then the segment URL.
13
12
  *
14
13
  * @param options - Playlist-level configuration (version, sequence numbers, init segment, target duration).
15
14
  * @param entries - Ordered array of segment entries to format.
@@ -30,7 +29,7 @@ export function buildPlaylist(options, entries) {
30
29
  "#EXT-X-MEDIA-SEQUENCE:" + String(options.mediaSequence)
31
30
  ];
32
31
  // Emit DISCONTINUITY-SEQUENCE when the caller provides a value. The distinction between undefined (no discontinuities in the stream's history) and 0
33
- // (discontinuities exist but none have scrolled off the window) is meaningful for spec compliance - both capture and native paths control this independently.
32
+ // (discontinuities exist but none have scrolled off the window) is meaningful for spec compliance, and each playlist generator decides it for itself.
34
33
  if (options.discontinuitySequence !== undefined) {
35
34
  lines.push("#EXT-X-DISCONTINUITY-SEQUENCE:" + String(options.discontinuitySequence));
36
35
  }
@@ -1 +1 @@
1
- {"version":3,"file":"playlistBuilder.js","sourceRoot":"","sources":["../../src/streaming/playlistBuilder.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAqEH,oBAAoB;AAEpB;;;;;;;;;;;GAWG;AACH,MAAM,UAAU,aAAa,CAAC,OAAwB,EAAE,OAA+B;IAErF,oKAAoK;IACpK,IAAI,WAAW,GAAG,OAAO,CAAC,cAAc,IAAI,CAAC,CAAC;IAE9C,KAAI,MAAM,KAAK,IAAI,OAAO,EAAE,CAAC;QAE3B,IAAG,KAAK,CAAC,QAAQ,GAAG,WAAW,EAAE,CAAC;YAEhC,WAAW,GAAG,KAAK,CAAC,QAAQ,CAAC;QAC/B,CAAC;IACH,CAAC;IAED,MAAM,KAAK,GAAa;QACtB,SAAS;QACT,iBAAiB,GAAG,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC;QAC3C,wBAAwB,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;QACzD,wBAAwB,GAAG,MAAM,CAAC,OAAO,CAAC,aAAa,CAAC;KACzD,CAAC;IAEF,qJAAqJ;IACrJ,8JAA8J;IAC9J,IAAG,OAAO,CAAC,qBAAqB,KAAK,SAAS,EAAE,CAAC;QAE/C,KAAK,CAAC,IAAI,CAAC,gCAAgC,GAAG,MAAM,CAAC,OAAO,CAAC,qBAAqB,CAAC,CAAC,CAAC;IACvF,CAAC;IAED,iJAAiJ;IACjJ,IAAG,OAAO,CAAC,aAAa,EAAE,CAAC;QAEzB,KAAK,CAAC,IAAI,CAAC,mBAAmB,GAAG,OAAO,CAAC,aAAa,GAAG,IAAI,CAAC,CAAC;IACjE,CAAC;IAED,mDAAmD;IACnD,KAAI,MAAM,KAAK,IAAI,OAAO,EAAE,CAAC;QAE3B,IAAG,KAAK,CAAC,aAAa,EAAE,CAAC;YAEvB,KAAK,CAAC,IAAI,CAAC,sBAAsB,CAAC,CAAC;QACrC,CAAC;QAED,IAAG,KAAK,CAAC,MAAM,EAAE,CAAC;YAEhB,KAAK,CAAC,IAAI,CAAC,mBAAmB,GAAG,KAAK,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;QACxD,CAAC;QAED,IAAG,KAAK,CAAC,eAAe,EAAE,CAAC;YAEzB,KAAK,CAAC,IAAI,CAAC,2BAA2B,GAAG,KAAK,CAAC,eAAe,CAAC,CAAC;QAClE,CAAC;QAED,IAAG,KAAK,CAAC,KAAK,EAAE,CAAC;YAEf,KAAK,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;QAC9B,CAAC;QAED,IAAG,KAAK,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;YAE9B,KAAK,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,iBAAiB,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC;QAC9F,CAAC;QAED,IAAG,KAAK,CAAC,UAAU,KAAK,SAAS,EAAE,CAAC;YAElC,KAAK,CAAC,IAAI,CAAC,sBAAsB,GAAG,KAAK,CAAC,UAAU,CAAC,CAAC;QACxD,CAAC;QAED,KAAK,CAAC,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC;QACzD,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IACxB,CAAC;IAED,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;AACjC,CAAC"}
1
+ {"version":3,"file":"playlistBuilder.js","sourceRoot":"","sources":["../../src/streaming/playlistBuilder.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAqEH,oBAAoB;AAEpB;;;;;;;;;;GAUG;AACH,MAAM,UAAU,aAAa,CAAC,OAAwB,EAAE,OAA+B;IAErF,oKAAoK;IACpK,IAAI,WAAW,GAAG,OAAO,CAAC,cAAc,IAAI,CAAC,CAAC;IAE9C,KAAI,MAAM,KAAK,IAAI,OAAO,EAAE,CAAC;QAE3B,IAAG,KAAK,CAAC,QAAQ,GAAG,WAAW,EAAE,CAAC;YAEhC,WAAW,GAAG,KAAK,CAAC,QAAQ,CAAC;QAC/B,CAAC;IACH,CAAC;IAED,MAAM,KAAK,GAAa;QACtB,SAAS;QACT,iBAAiB,GAAG,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC;QAC3C,wBAAwB,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;QACzD,wBAAwB,GAAG,MAAM,CAAC,OAAO,CAAC,aAAa,CAAC;KACzD,CAAC;IAEF,qJAAqJ;IACrJ,sJAAsJ;IACtJ,IAAG,OAAO,CAAC,qBAAqB,KAAK,SAAS,EAAE,CAAC;QAE/C,KAAK,CAAC,IAAI,CAAC,gCAAgC,GAAG,MAAM,CAAC,OAAO,CAAC,qBAAqB,CAAC,CAAC,CAAC;IACvF,CAAC;IAED,iJAAiJ;IACjJ,IAAG,OAAO,CAAC,aAAa,EAAE,CAAC;QAEzB,KAAK,CAAC,IAAI,CAAC,mBAAmB,GAAG,OAAO,CAAC,aAAa,GAAG,IAAI,CAAC,CAAC;IACjE,CAAC;IAED,mDAAmD;IACnD,KAAI,MAAM,KAAK,IAAI,OAAO,EAAE,CAAC;QAE3B,IAAG,KAAK,CAAC,aAAa,EAAE,CAAC;YAEvB,KAAK,CAAC,IAAI,CAAC,sBAAsB,CAAC,CAAC;QACrC,CAAC;QAED,IAAG,KAAK,CAAC,MAAM,EAAE,CAAC;YAEhB,KAAK,CAAC,IAAI,CAAC,mBAAmB,GAAG,KAAK,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;QACxD,CAAC;QAED,IAAG,KAAK,CAAC,eAAe,EAAE,CAAC;YAEzB,KAAK,CAAC,IAAI,CAAC,2BAA2B,GAAG,KAAK,CAAC,eAAe,CAAC,CAAC;QAClE,CAAC;QAED,IAAG,KAAK,CAAC,KAAK,EAAE,CAAC;YAEf,KAAK,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;QAC9B,CAAC;QAED,IAAG,KAAK,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;YAE9B,KAAK,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,iBAAiB,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC;QAC9F,CAAC;QAED,IAAG,KAAK,CAAC,UAAU,KAAK,SAAS,EAAE,CAAC;YAElC,KAAK,CAAC,IAAI,CAAC,sBAAsB,GAAG,KAAK,CAAC,UAAU,CAAC,CAAC;QACxD,CAAC;QAED,KAAK,CAAC,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC;QACzD,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IACxB,CAAC;IAED,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;AACjC,CAAC"}
@@ -1,14 +1,26 @@
1
1
  import type { Express } from "express";
2
2
  import type { CaptureCodec } from "./codec.ts";
3
3
  import type { Clock } from "homebridge-plugin-utils";
4
+ import type { Nullable } from "../types/index.ts";
4
5
  import type { PlaylistSegmentEntry } from "./playlistBuilder.ts";
6
+ import type { ResumePosition } from "./hlsResume.ts";
7
+ /**
8
+ * How preroll generation reaches FFmpeg: resolving the binary to encode with, and running one encode to completion. generatePreroll takes it as a defaulted
9
+ * parameter wired to the real resolver and spawnAndCollect, the way the FFmpeg context is injected, so a test drives the resolve, split and store path with a
10
+ * synthetic encoder in place of a real FFmpeg.
11
+ */
12
+ export interface PrerollEncoder {
13
+ readonly resolve: () => Promise<string | undefined>;
14
+ readonly run: (ffmpegBin: string, args: string[]) => Promise<Buffer>;
15
+ }
5
16
  /**
6
17
  * Returns true when the specified preroll variant has been generated and is ready to serve.
7
18
  * @param codec - The preroll codec variant to check.
8
19
  */
9
20
  export declare function isPrerollReady(codec: CaptureCodec): boolean;
10
21
  /**
11
- * Returns the number of preroll segments available for the specified codec. Used by the segmenter to determine the preroll-to-real segment index boundary.
22
+ * Returns the number of preroll segments available for the specified codec. Stream registration records the count on the stream's HLS state, from which the
23
+ * capture segmenter and the native proxy take it as the preroll-to-real segment index boundary.
12
24
  * @param codec - The preroll codec variant.
13
25
  * @returns The count of preroll media segments.
14
26
  */
@@ -22,8 +34,8 @@ export declare function getPrerollSegmentCount(codec: CaptureCodec): number;
22
34
  */
23
35
  export declare function getPrerollSegmentDuration(codec: CaptureCodec, index: number): number;
24
36
  /**
25
- * Returns the total duration of all preroll segments in seconds. Used by the fmp4Segmenter to compute PTS offsets that make Chrome's real content timestamps continue
26
- * from where the preroll ended, eliminating the PTS discontinuity at the preroll-to-live boundary.
37
+ * Returns the total duration of all preroll segments in seconds. Used by the fmp4Segmenter to compute PTS offsets that make the remuxed capture's real content
38
+ * timestamps continue from where the preroll ended, eliminating the PTS discontinuity at the preroll-to-live boundary.
27
39
  * @param codec - The preroll codec variant.
28
40
  * @returns The sum of all preroll segment durations in seconds.
29
41
  */
@@ -39,22 +51,24 @@ export declare function getPrerollMaxDuration(codec: CaptureCodec): number;
39
51
  * Returns the preroll codec that should be used for new streams. The preferred codec matches the effective capture codec (determined by the user's allowlist and GPU
40
52
  * capabilities) so the preroll-to-live boundary has no codec discontinuity. If the preferred variant was not generated (e.g., generation failed), falls back to
41
53
  * whichever variant is available.
42
- * @returns The codec to use for preroll, or "h264" as the default.
54
+ * @returns The codec to use for preroll, or CAPTURE_BASELINE_CODEC when no variant is ready.
43
55
  */
44
56
  export declare function getPrerollCodec(): CaptureCodec;
45
57
  /**
46
58
  * Generates preroll fMP4 variants at startup. Prefers the bundled ffmpeg-for-homebridge binary, whose encoder set is known to carry both libx264 and libx265, and
47
59
  * falls back to an ffmpeg on the system PATH when the bundled binary is missing or will not run - the postinstall download that fetches it can fail, and a working
48
- * system FFmpeg is a better answer than no preroll at all. The H.264 variant is always generated. The HEVC variant is generated when HEVC is the effective capture
49
- * codec (user allows it AND GPU supports hardware encoding), so the preroll codec matches the capture codec at the preroll-to-live boundary.
60
+ * system FFmpeg is a better answer than no preroll at all. The baseline codec's variant is always generated, and the effective capture codec's variant as well
61
+ * when it is not the baseline (the user allows it AND the GPU supports its hardware encoding), so the preroll codec matches the capture codec at the
62
+ * preroll-to-live boundary.
50
63
  *
51
64
  * Each variant spawns FFmpeg to create PREROLL_TOTAL_DURATION seconds of black frame + silence as fragmented MP4, then splits the output into an init segment
52
65
  * (ftyp + moov) and individual media segments (moof + mdat pairs) using the MP4 box parser. Each segment has naturally monotonic PTS because it comes from a
53
66
  * continuous FFmpeg encode. If no FFmpeg is available or a variant fails, the system degrades gracefully - the blocking stream setup path is used instead. That
54
67
  * per-variant degradation is also the safety net for a PATH build that turns out to be missing an encoder, which the bundled binary would have had. Each
55
68
  * variant's encode is bounded by the generation deadline, so a hung FFmpeg degrades startup to a preroll-free boot instead of blocking it.
69
+ * @param encoder - How the binary is resolved and each encode is run. Defaults to the real resolver and spawnAndCollect.
56
70
  */
57
- export declare function generatePreroll(): Promise<void>;
71
+ export declare function generatePreroll(encoder?: PrerollEncoder): Promise<void>;
58
72
  /**
59
73
  * What a one-shot FFmpeg collection needs beyond the executable and its arguments: how long the child is allowed, and where that deadline's time comes from.
60
74
  */
@@ -80,12 +94,14 @@ export interface PrerollWindowOptions {
80
94
  currentSegmentIndex: number;
81
95
  maxSegments: number;
82
96
  prerollSegmentCount: number;
97
+ readonly prerollStartIndex: number;
83
98
  realSegmentCount: number;
84
99
  }
85
100
  /**
86
- * Computes the sliding window start index for a composite playlist containing both preroll and real segments. The start index is determined by three constraints:
87
- * (1) never negative, (2) the standard sliding window rule (current index minus window size), and (3) the preroll cap that limits how many preroll entries appear in
88
- * the window. The third constraint is the key addition - it prevents clients from playing through many seconds of remaining preroll before reaching live content.
101
+ * Computes the sliding window start index for a composite playlist containing both preroll and real segments. The start index is the largest of these
102
+ * constraints: (1) never before the preroll's first index, (2) the standard sliding window rule (current index minus window size), and (3) the preroll cap that
103
+ * limits how many preroll entries appear in the window. The third constraint is the key addition - it prevents clients from playing through many seconds of
104
+ * remaining preroll before reaching live content.
89
105
  *
90
106
  * @param options - Window computation parameters.
91
107
  * @returns The start index for the composite playlist window.
@@ -97,25 +113,32 @@ export declare function computePrerollWindow(options: PrerollWindowOptions): num
97
113
  export interface PrerollEntryOptions {
98
114
  baseUrl: string;
99
115
  codec: CaptureCodec;
100
- extension: string;
101
116
  prerollSegmentCount: number;
102
117
  startIndex: number;
103
118
  }
104
119
  /**
105
120
  * Builds an array of playlist segment entries for preroll segments within the given index range. Each entry has an absolute URL pointing to the global /preroll/ route
106
- * and the duration extracted from the preroll segment cache. No per-segment metadata tags (DISCONTINUITY, PROGRAM-DATE-TIME, etc.) are set - preroll is synthetic
107
- * placeholder content.
121
+ * and the duration extracted from the preroll segment cache. The builder sets only the URL and duration, and the caller adds any marker its timeline needs (for
122
+ * example, a resumed stream's opening discontinuity). PROGRAM-DATE-TIME is deliberately left out, because preroll is synthetic placeholder content.
108
123
  *
109
124
  * @param options - Entry construction parameters.
110
125
  * @returns Ordered array of preroll segment entries for the builder.
111
126
  */
112
127
  export declare function buildPrerollEntries(options: PrerollEntryOptions): PlaylistSegmentEntry[];
128
+ /**
129
+ * Builds the URI of a preroll variant's init segment. This is the one spelling of that path: the startup playlist's map entry, the composite playlists the capture
130
+ * segmenter and the native proxy build while preroll entries are in their window, and the init route itself all take it from here.
131
+ * @param baseUrl - The server's external URL (e.g., "http://192.168.1.100:5589"), or the empty string for the route's own path.
132
+ * @param codec - The preroll codec variant, or the route's codec parameter.
133
+ * @returns The init segment's URI.
134
+ */
135
+ export declare function buildPrerollInitUri(baseUrl: string, codec: CaptureCodec | ":codec"): string;
113
136
  /**
114
137
  * Computes how many segments should be revealed given elapsed wall-clock time and a codec's segment durations. This is the pure reveal math, isolated from the
115
138
  * prerollVariants cache and from the clock so it can be exercised directly with plain arguments - no seeded variant, no timer mocking required. The initial window
116
139
  * (initialWindow segments) is revealed immediately so the client has enough content to begin playback per the HLS 3-from-end rule. Additional segments are revealed
117
- * one at a time as wall-clock time passes - each new segment appears when enough time has elapsed for the client to have consumed the prior content beyond the
118
- * initial window.
140
+ * one at a time as wall-clock time passes - a segment beyond the initial window appears once elapsed time reaches the summed duration of the segments past the
141
+ * initial window up to and including itself.
119
142
  *
120
143
  * @param totalSegments - The number of segments available (from variant.mediaSegments.length). Distinct from durations.length - the durations array is tracked
121
144
  * separately and may differ in length.
@@ -148,7 +171,7 @@ export declare function computeProgressiveReveal(options: ProgressiveRevealOptio
148
171
  */
149
172
  export interface PrerollPlaylistOptions extends ProgressiveRevealOptions {
150
173
  readonly baseUrl: string;
151
- readonly startingSequence: number;
174
+ readonly resumePosition: Nullable<ResumePosition>;
152
175
  }
153
176
  /**
154
177
  * Generates a progressive HLS playlist referencing the global preroll segments for the specified codec. The playlist simulates a live stream by revealing segments
@@ -163,6 +186,10 @@ export interface PrerollPlaylistOptions extends ProgressiveRevealOptions {
163
186
  * misleading and would create a backward time jump at the preroll-to-live boundary (preroll PDT would overshoot real content PDT because the preroll covers 30
164
187
  * seconds of content but real content typically arrives in ~15 seconds). PDT is emitted only on real segments once the segmenter produces them.
165
188
  *
189
+ * A resumed stream's playlist continues the media sequence and the discontinuity sequence from its resume position, and marks its first entry with a
190
+ * discontinuity, because its preroll opens a new timeline. A fresh stream's playlist starts its media sequence at 0 and carries neither the discontinuity
191
+ * sequence nor the marker.
192
+ *
166
193
  * @param options - See PrerollPlaylistOptions.
167
194
  * @returns The complete HLS playlist string, or an empty string if the preroll is not ready.
168
195
  */