prismcast 1.11.0 → 1.12.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 (79) hide show
  1. package/README.md +1 -1
  2. package/dist/app.d.ts.map +1 -1
  3. package/dist/app.js +5 -4
  4. package/dist/app.js.map +1 -1
  5. package/dist/browser/cdp.d.ts +3 -13
  6. package/dist/browser/cdp.d.ts.map +1 -1
  7. package/dist/browser/cdp.js +11 -83
  8. package/dist/browser/cdp.js.map +1 -1
  9. package/dist/browser/display.d.ts +0 -29
  10. package/dist/browser/display.d.ts.map +1 -1
  11. package/dist/browser/display.js +0 -35
  12. package/dist/browser/display.js.map +1 -1
  13. package/dist/browser/index.d.ts +35 -3
  14. package/dist/browser/index.d.ts.map +1 -1
  15. package/dist/browser/index.js +140 -86
  16. package/dist/browser/index.js.map +1 -1
  17. package/dist/browser/login.d.ts.map +1 -1
  18. package/dist/browser/login.js +5 -0
  19. package/dist/browser/login.js.map +1 -1
  20. package/dist/config/index.d.ts +0 -3
  21. package/dist/config/index.d.ts.map +1 -1
  22. package/dist/config/index.js +3 -10
  23. package/dist/config/index.js.map +1 -1
  24. package/dist/config/presets.d.ts +6 -72
  25. package/dist/config/presets.d.ts.map +1 -1
  26. package/dist/config/presets.js +10 -157
  27. package/dist/config/presets.js.map +1 -1
  28. package/dist/index.d.ts +1 -0
  29. package/dist/index.d.ts.map +1 -1
  30. package/dist/index.js +5 -0
  31. package/dist/index.js.map +1 -1
  32. package/dist/routes/config/settings.d.ts.map +1 -1
  33. package/dist/routes/config/settings.js +7 -29
  34. package/dist/routes/config/settings.js.map +1 -1
  35. package/dist/routes/root/content.d.ts.map +1 -1
  36. package/dist/routes/root/content.js +6 -7
  37. package/dist/routes/root/content.js.map +1 -1
  38. package/dist/routes/root/scripts/config.d.ts.map +1 -1
  39. package/dist/routes/root/scripts/config.js +7 -1
  40. package/dist/routes/root/scripts/config.js.map +1 -1
  41. package/dist/routes/upgrade.d.ts +18 -1
  42. package/dist/routes/upgrade.d.ts.map +1 -1
  43. package/dist/routes/upgrade.js +61 -25
  44. package/dist/routes/upgrade.js.map +1 -1
  45. package/dist/streaming/monitor.d.ts.map +1 -1
  46. package/dist/streaming/monitor.js +14 -12
  47. package/dist/streaming/monitor.js.map +1 -1
  48. package/dist/streaming/preroll.d.ts +7 -5
  49. package/dist/streaming/preroll.d.ts.map +1 -1
  50. package/dist/streaming/preroll.js +17 -14
  51. package/dist/streaming/preroll.js.map +1 -1
  52. package/dist/streaming/setup.d.ts.map +1 -1
  53. package/dist/streaming/setup.js +26 -14
  54. package/dist/streaming/setup.js.map +1 -1
  55. package/dist/types/index.d.ts +1 -1
  56. package/dist/types/index.d.ts.map +1 -1
  57. package/dist/types/selection.d.ts +0 -8
  58. package/dist/types/selection.d.ts.map +1 -1
  59. package/dist/upgrade/commands.context.js +1 -1
  60. package/dist/upgrade/commands.context.js.map +1 -1
  61. package/dist/upgrade/commands.d.ts +1 -1
  62. package/dist/upgrade/commands.d.ts.map +1 -1
  63. package/dist/upgrade/commands.js +5 -5
  64. package/dist/upgrade/commands.js.map +1 -1
  65. package/dist/upgrade/lifecycle.context.d.ts +10 -1
  66. package/dist/upgrade/lifecycle.context.d.ts.map +1 -1
  67. package/dist/upgrade/lifecycle.context.js +36 -11
  68. package/dist/upgrade/lifecycle.context.js.map +1 -1
  69. package/dist/upgrade/lifecycle.d.ts +6 -4
  70. package/dist/upgrade/lifecycle.d.ts.map +1 -1
  71. package/dist/upgrade/lifecycle.js +5 -5
  72. package/dist/upgrade/lifecycle.js.map +1 -1
  73. package/dist/utils/debugFilter.js +1 -1
  74. package/dist/utils/debugFilter.js.map +1 -1
  75. package/dist/utils/ffmpeg.d.ts +24 -9
  76. package/dist/utils/ffmpeg.d.ts.map +1 -1
  77. package/dist/utils/ffmpeg.js +49 -17
  78. package/dist/utils/ffmpeg.js.map +1 -1
  79. package/package.json +2 -2
@@ -7,18 +7,32 @@ import { spawn } from "node:child_process";
7
7
  // emit these patterns. The filter acts as a safety net to keep logs clean.
8
8
  const FFMPEG_NOISE_PATTERNS = ["Press [q] to stop", "frame=", "size=", "time=", "bitrate=", "speed="];
9
9
  /**
10
- * Returns the path to the bundled ffmpeg-for-homebridge binary if it exists on disk. This binary ships as an npm dependency and has a full encoder set (libx264,
11
- * libx265, zoompan, overlay) regardless of what the user has installed. Used by preroll generation to guarantee HEVC encoding availability without depending on
12
- * the Channels DVR FFmpeg (which has a minimal encoder set) or a system installation.
13
- * @param ctx - The FFmpeg context. Defaults to createDefaultFFmpegContext() which wires real runtime I/O.
14
- * @returns The absolute path to the bundled FFmpeg, or undefined if the package did not resolve or the binary is missing.
10
+ * Probes the bundled ffmpeg-for-homebridge binary. The package ships a full encoder set (libx264, libx265, zoompan, overlay) regardless of what the user has
11
+ * installed, which is why both resolvers reach for it. Resolving to a path is necessary but not sufficient: the binary can be missing on disk (a production-only
12
+ * install stripped it, antivirus quarantined it) or present but unable to run (wrong architecture, no execute permission), so the candidate has to both exist and
13
+ * answer a probe before it is offered.
14
+ * @param ctx - The FFmpeg context.
15
+ * @returns Promise resolving to the bundled path when it is usable, or undefined.
15
16
  */
16
- export function getBundledFFmpegPath(ctx = createDefaultFFmpegContext()) {
17
- if (ctx.bundledPath && ctx.exists(ctx.bundledPath)) {
17
+ async function probeBundledFFmpeg(ctx) {
18
+ if (ctx.bundledPath && ctx.exists(ctx.bundledPath) && (await ctx.probe(ctx.bundledPath))) {
18
19
  return ctx.bundledPath;
19
20
  }
20
21
  return undefined;
21
22
  }
23
+ /**
24
+ * Probes for an FFmpeg on the system PATH. There is no path to check first - the name alone is the candidate, and the probe's spawn is what answers whether the
25
+ * shell can find and run it. Returning the bare name rather than an absolute path is deliberate: the spawners hand it to spawn(), which does its own PATH lookup
26
+ * at launch time, so a PATH that changes under a long-running process is still honored.
27
+ * @param ctx - The FFmpeg context.
28
+ * @returns Promise resolving to "ffmpeg" when the system has a working one, or undefined.
29
+ */
30
+ async function probeSystemFFmpeg(ctx) {
31
+ if (await ctx.probe("ffmpeg")) {
32
+ return "ffmpeg";
33
+ }
34
+ return undefined;
35
+ }
22
36
  // Common input-side flags shared by every FFmpeg spawner. They silence the banner and per-frame stats, restrict logging to warnings and errors, tolerate corrupt
23
37
  // input frames rather than aborting on read errors, and cap input probing at 16KB so the encoder begins emitting output as soon as the first segment lands.
24
38
  const FFMPEG_INPUT_FLAGS = [
@@ -76,16 +90,26 @@ export async function probeFFmpegPath(ctx = createDefaultFFmpegContext()) {
76
90
  }
77
91
  }
78
92
  }
79
- // Check ffmpeg-for-homebridge bundled FFmpeg. This provides a reliable fallback without requiring manual FFmpeg installation.
80
- if (ctx.bundledPath && ctx.exists(ctx.bundledPath) && (await ctx.probe(ctx.bundledPath))) {
81
- return ctx.bundledPath;
82
- }
83
- // Finally, check if ffmpeg is available in the system PATH.
84
- if (await ctx.probe("ffmpeg")) {
85
- return "ffmpeg";
86
- }
87
- // FFmpeg not found anywhere.
88
- return undefined;
93
+ // Check ffmpeg-for-homebridge bundled FFmpeg. This provides a reliable fallback without requiring manual FFmpeg installation. Falling through to the system
94
+ // PATH is the last resort, and undefined out of both means FFmpeg was not found anywhere.
95
+ return (await probeBundledFFmpeg(ctx)) ?? (await probeSystemFFmpeg(ctx));
96
+ }
97
+ /**
98
+ * Probes for an FFmpeg suitable for preroll generation: the bundled ffmpeg-for-homebridge binary first, an ffmpeg on the system PATH second. Pure algorithm over
99
+ * the supplied FFmpegContext, with no internal caching, exactly like probeFFmpegPath; resolvePrerollFFmpegPath is the production-facing memoized wrapper.
100
+ *
101
+ * The preference order is the opposite end of probeFFmpegPath's, and the Channels DVR binary is deliberately absent from it. Preroll encodes black-and-silence
102
+ * video from scratch, so it needs the full encoder and filter set - libx264, libx265, and the filters the generation command composes - while the Channels DVR
103
+ * FFmpeg ships a minimal set that may lack them. Handing preroll a binary that cannot encode what it is asked to encode fails later and less legibly than not
104
+ * offering it at all, so this resolver never considers it. The bundled binary is preferred because its encoder set is known; the PATH fallback exists because the
105
+ * bundled binary's postinstall download can fail, leaving a perfectly good system FFmpeg unused. A PATH build missing an encoder is still possible, which is what
106
+ * preroll's per-variant degradation covers.
107
+ *
108
+ * @param ctx - The FFmpeg context. Defaults to createDefaultFFmpegContext() which wires real runtime I/O.
109
+ * @returns Promise resolving to an FFmpeg path suitable for preroll, or undefined if neither candidate is usable.
110
+ */
111
+ export async function probePrerollFFmpegPath(ctx = createDefaultFFmpegContext()) {
112
+ return (await probeBundledFFmpeg(ctx)) ?? (await probeSystemFFmpeg(ctx));
89
113
  }
90
114
  /**
91
115
  * Resolves the FFmpeg executable path against the production filesystem. Memoized via memoizeAsync: first call probes; subsequent calls return the cached
@@ -101,6 +125,14 @@ export async function probeFFmpegPath(ctx = createDefaultFFmpegContext()) {
101
125
  * @returns Promise resolving to the FFmpeg path if found, or undefined if not available.
102
126
  */
103
127
  export const resolveFFmpegPath = memoizeAsync(async () => probeFFmpegPath());
128
+ /**
129
+ * Resolves the FFmpeg executable preroll generation should use, against the production filesystem. Memoized via memoizeAsync exactly as resolveFFmpegPath is, and
130
+ * for the same reasons: first call probes, subsequent calls return the cached result, and tests exercise probePrerollFFmpegPath against synthetic contexts rather
131
+ * than reaching for this sealed singleton. It is a separate memoizer from resolveFFmpegPath because the two answer different questions - "what can we stream
132
+ * with" versus "what can we encode preroll with" - and can legitimately resolve to different binaries on the same machine.
133
+ * @returns Promise resolving to an FFmpeg path suitable for preroll, or undefined if none is available.
134
+ */
135
+ export const resolvePrerollFFmpegPath = memoizeAsync(async () => probePrerollFFmpegPath());
104
136
  // MPEG-TS Output Flags.
105
137
  /* MPEG-TS muxer flags for the fMP4-to-MPEG-TS remuxer. Tuned to produce output resembling a real HDHomeRun CONNECT DUO (HDTC-2US) ATSC transport stream.
106
138
  * Plex's transcoder may make assumptions about stream structure based on the reported device model (PID assignments, PAT/PMT frequency). Using ATSC-conventional
@@ -1 +1 @@
1
- {"version":3,"file":"ffmpeg.js","sourceRoot":"","sources":["../../src/utils/ffmpeg.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ffmpeg.js","sourceRoot":"","sources":["../../src/utils/ffmpeg.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "prismcast",
3
3
  "displayName": "PrismCast",
4
- "version": "1.11.0",
4
+ "version": "1.12.0",
5
5
  "description": "Browser-based live TV capture server for Channels DVR, Plex, and other streaming clients.",
6
6
  "author": {
7
7
  "name": "HJD",
@@ -89,7 +89,7 @@
89
89
  "@types/node": "26.2.0",
90
90
  "@types/ws": "8.18.1",
91
91
  "eslint": "9.39.2",
92
- "happy-dom": "20.11.2",
92
+ "happy-dom": "20.11.6",
93
93
  "nodemon": "3.1.14",
94
94
  "typescript": "5.9.3",
95
95
  "typescript-eslint": "8.67.0"