prismcast 1.6.0 → 1.7.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 (194) hide show
  1. package/dist/browser/cdp.js +1 -1
  2. package/dist/browser/cdp.js.map +1 -1
  3. package/dist/browser/channelSelection.d.ts +10 -34
  4. package/dist/browser/channelSelection.js +19 -96
  5. package/dist/browser/channelSelection.js.map +1 -1
  6. package/dist/browser/display.d.ts +19 -0
  7. package/dist/browser/display.js +16 -11
  8. package/dist/browser/display.js.map +1 -1
  9. package/dist/browser/index.d.ts +9 -46
  10. package/dist/browser/index.js +136 -191
  11. package/dist/browser/index.js.map +1 -1
  12. package/dist/browser/login.d.ts +65 -0
  13. package/dist/browser/login.js +193 -0
  14. package/dist/browser/login.js.map +1 -0
  15. package/dist/browser/precaching.js +12 -0
  16. package/dist/browser/precaching.js.map +1 -1
  17. package/dist/browser/tuning/comcastPolymer.d.ts +23 -0
  18. package/dist/browser/tuning/comcastPolymer.js +655 -0
  19. package/dist/browser/tuning/comcastPolymer.js.map +1 -0
  20. package/dist/browser/tuning/cox.d.ts +2 -0
  21. package/dist/browser/tuning/cox.js +14 -0
  22. package/dist/browser/tuning/cox.js.map +1 -0
  23. package/dist/browser/tuning/directv.js +1 -1
  24. package/dist/browser/tuning/directv.js.map +1 -1
  25. package/dist/browser/tuning/fox.js +2 -2
  26. package/dist/browser/tuning/fox.js.map +1 -1
  27. package/dist/browser/tuning/hbo.js +1 -1
  28. package/dist/browser/tuning/hbo.js.map +1 -1
  29. package/dist/browser/tuning/hulu.js +1 -1
  30. package/dist/browser/tuning/hulu.js.map +1 -1
  31. package/dist/browser/tuning/shared.d.ts +46 -0
  32. package/dist/browser/tuning/shared.js +100 -0
  33. package/dist/browser/tuning/shared.js.map +1 -0
  34. package/dist/browser/tuning/sling.js +1 -1
  35. package/dist/browser/tuning/sling.js.map +1 -1
  36. package/dist/browser/tuning/spectrum.js +1 -1
  37. package/dist/browser/tuning/spectrum.js.map +1 -1
  38. package/dist/browser/tuning/thumbnailRow.js +1 -1
  39. package/dist/browser/tuning/thumbnailRow.js.map +1 -1
  40. package/dist/browser/tuning/tileClick.js +1 -1
  41. package/dist/browser/tuning/tileClick.js.map +1 -1
  42. package/dist/browser/tuning/xfinity.js +10 -603
  43. package/dist/browser/tuning/xfinity.js.map +1 -1
  44. package/dist/browser/tuning/youtubeTv.js +1 -1
  45. package/dist/browser/tuning/youtubeTv.js.map +1 -1
  46. package/dist/browser/video.d.ts +18 -0
  47. package/dist/browser/video.js +69 -107
  48. package/dist/browser/video.js.map +1 -1
  49. package/dist/channels/index.d.ts +2 -2
  50. package/dist/channels/index.js +2075 -800
  51. package/dist/channels/index.js.map +1 -1
  52. package/dist/config/health.js +20 -2
  53. package/dist/config/health.js.map +1 -1
  54. package/dist/config/index.js +29 -64
  55. package/dist/config/index.js.map +1 -1
  56. package/dist/config/providerPacks.js +4 -1
  57. package/dist/config/providerPacks.js.map +1 -1
  58. package/dist/config/providers.d.ts +12 -5
  59. package/dist/config/providers.js +110 -94
  60. package/dist/config/providers.js.map +1 -1
  61. package/dist/config/sites.js +15 -9
  62. package/dist/config/sites.js.map +1 -1
  63. package/dist/config/userChannels.d.ts +50 -2
  64. package/dist/config/userChannels.js +212 -10
  65. package/dist/config/userChannels.js.map +1 -1
  66. package/dist/config/userConfig.d.ts +1 -1
  67. package/dist/config/userConfig.js +2 -15
  68. package/dist/config/userConfig.js.map +1 -1
  69. package/dist/hdhr/channelMap.d.ts +1 -1
  70. package/dist/hdhr/channelMap.js +4 -4
  71. package/dist/hdhr/channelMap.js.map +1 -1
  72. package/dist/index.js +9 -15
  73. package/dist/index.js.map +1 -1
  74. package/dist/native/index.d.ts +3 -0
  75. package/dist/native/index.js +2 -1
  76. package/dist/native/index.js.map +1 -1
  77. package/dist/native/probe.d.ts +4 -3
  78. package/dist/native/probe.js +36 -12
  79. package/dist/native/probe.js.map +1 -1
  80. package/dist/native/proxy.d.ts +2 -0
  81. package/dist/native/proxy.js +369 -326
  82. package/dist/native/proxy.js.map +1 -1
  83. package/dist/routes/components.d.ts +43 -0
  84. package/dist/routes/components.js +122 -0
  85. package/dist/routes/components.js.map +1 -1
  86. package/dist/routes/config/channels/index.d.ts +2 -2
  87. package/dist/routes/config/channels/index.js +1 -1
  88. package/dist/routes/config/channels/index.js.map +1 -1
  89. package/dist/routes/config/channels/routes.js +443 -65
  90. package/dist/routes/config/channels/routes.js.map +1 -1
  91. package/dist/routes/config/channels/table.d.ts +76 -0
  92. package/dist/routes/config/channels/table.js +352 -66
  93. package/dist/routes/config/channels/table.js.map +1 -1
  94. package/dist/routes/config/index.d.ts +1 -1
  95. package/dist/routes/config/index.js +1 -1
  96. package/dist/routes/config/index.js.map +1 -1
  97. package/dist/routes/config/providers.d.ts +6 -6
  98. package/dist/routes/config/providers.js +69 -95
  99. package/dist/routes/config/providers.js.map +1 -1
  100. package/dist/routes/index.d.ts +0 -16
  101. package/dist/routes/index.js +0 -17
  102. package/dist/routes/index.js.map +1 -1
  103. package/dist/routes/providers.js +106 -3
  104. package/dist/routes/providers.js.map +1 -1
  105. package/dist/routes/root/content.js +55 -38
  106. package/dist/routes/root/content.js.map +1 -1
  107. package/dist/routes/root/index.js +2 -1
  108. package/dist/routes/root/index.js.map +1 -1
  109. package/dist/routes/root/scripts/channels.js +772 -312
  110. package/dist/routes/root/scripts/channels.js.map +1 -1
  111. package/dist/routes/root/scripts/config.js +596 -544
  112. package/dist/routes/root/scripts/config.js.map +1 -1
  113. package/dist/routes/root/scripts/index.d.ts +1 -0
  114. package/dist/routes/root/scripts/index.js +1 -0
  115. package/dist/routes/root/scripts/index.js.map +1 -1
  116. package/dist/routes/root/scripts/shared.d.ts +6 -0
  117. package/dist/routes/root/scripts/shared.js +391 -0
  118. package/dist/routes/root/scripts/shared.js.map +1 -0
  119. package/dist/routes/root/scripts/status.js +36 -21
  120. package/dist/routes/root/scripts/status.js.map +1 -1
  121. package/dist/routes/root/styles.js +113 -8
  122. package/dist/routes/root/styles.js.map +1 -1
  123. package/dist/service/commands.js +2 -1
  124. package/dist/service/commands.js.map +1 -1
  125. package/dist/streaming/fmp4Segmenter.d.ts +2 -0
  126. package/dist/streaming/fmp4Segmenter.js +7 -4
  127. package/dist/streaming/fmp4Segmenter.js.map +1 -1
  128. package/dist/streaming/hls.js +269 -188
  129. package/dist/streaming/hls.js.map +1 -1
  130. package/dist/streaming/hlsResume.d.ts +9 -3
  131. package/dist/streaming/hlsResume.js +13 -6
  132. package/dist/streaming/hlsResume.js.map +1 -1
  133. package/dist/streaming/hlsSegments.d.ts +1 -2
  134. package/dist/streaming/hlsSegments.js +48 -46
  135. package/dist/streaming/hlsSegments.js.map +1 -1
  136. package/dist/streaming/lifecycle.js +8 -12
  137. package/dist/streaming/lifecycle.js.map +1 -1
  138. package/dist/streaming/monitor.js +625 -585
  139. package/dist/streaming/monitor.js.map +1 -1
  140. package/dist/streaming/mpegts.js +1 -1
  141. package/dist/streaming/mpegts.js.map +1 -1
  142. package/dist/streaming/preroll.d.ts +40 -20
  143. package/dist/streaming/preroll.js +147 -86
  144. package/dist/streaming/preroll.js.map +1 -1
  145. package/dist/streaming/recovery.d.ts +0 -6
  146. package/dist/streaming/recovery.js +0 -8
  147. package/dist/streaming/recovery.js.map +1 -1
  148. package/dist/streaming/registry.d.ts +36 -9
  149. package/dist/streaming/registry.js +6 -9
  150. package/dist/streaming/registry.js.map +1 -1
  151. package/dist/streaming/setup.d.ts +1 -1
  152. package/dist/streaming/setup.js +44 -21
  153. package/dist/streaming/setup.js.map +1 -1
  154. package/dist/streaming/showInfo.d.ts +7 -6
  155. package/dist/streaming/showInfo.js +156 -36
  156. package/dist/streaming/showInfo.js.map +1 -1
  157. package/dist/streaming/statusEmitter.d.ts +14 -2
  158. package/dist/streaming/statusEmitter.js +22 -4
  159. package/dist/streaming/statusEmitter.js.map +1 -1
  160. package/dist/types/channels.d.ts +31 -0
  161. package/dist/types/config.d.ts +2 -2
  162. package/dist/types/index.d.ts +1 -1
  163. package/dist/types/index.js.map +1 -1
  164. package/dist/types/profiles.d.ts +8 -3
  165. package/dist/types/selection.d.ts +1 -0
  166. package/dist/types/shared.d.ts +1 -1
  167. package/dist/utils/debugFilter.d.ts +0 -5
  168. package/dist/utils/debugFilter.js +5 -11
  169. package/dist/utils/debugFilter.js.map +1 -1
  170. package/dist/utils/delay.d.ts +12 -0
  171. package/dist/utils/delay.js +20 -0
  172. package/dist/utils/delay.js.map +1 -1
  173. package/dist/utils/evaluate.js +6 -11
  174. package/dist/utils/evaluate.js.map +1 -1
  175. package/dist/utils/ffmpeg.d.ts +13 -5
  176. package/dist/utils/ffmpeg.js +32 -11
  177. package/dist/utils/ffmpeg.js.map +1 -1
  178. package/dist/utils/format.d.ts +6 -0
  179. package/dist/utils/format.js +8 -0
  180. package/dist/utils/format.js.map +1 -1
  181. package/dist/utils/index.d.ts +1 -0
  182. package/dist/utils/index.js +1 -0
  183. package/dist/utils/index.js.map +1 -1
  184. package/dist/utils/logEmitter.js +1 -1
  185. package/dist/utils/logEmitter.js.map +1 -1
  186. package/dist/utils/retry.d.ts +15 -9
  187. package/dist/utils/retry.js +7 -23
  188. package/dist/utils/retry.js.map +1 -1
  189. package/dist/utils/timing.d.ts +5 -0
  190. package/dist/utils/timing.js +13 -0
  191. package/dist/utils/timing.js.map +1 -0
  192. package/dist/utils/version.js +2 -2
  193. package/dist/utils/version.js.map +1 -1
  194. package/package.json +5 -5
@@ -1,10 +1,11 @@
1
+ import { getGpuCapabilities, setBrowserChrome, setGpuCapabilities, setMaxSupportedViewport } from "./display.js";
1
2
  import { LOG, cancellableTimeout, clearPidFile, evaluateWithAbort, formatError, isProcessRunning, readPidFile, startTimer, writePidFile } from "../utils/index.js";
3
+ import { clearLoginState, isLoginModeActive, setBrowserAccessors } from "./login.js";
2
4
  import { getAllStreams, getStreamCount } from "../streaming/registry.js";
3
5
  import { getChromeDataDir, getChromePidFilePath, getDataDir, getExtensionDir } from "../config/paths.js";
4
6
  import { getEffectivePreset, getPresetViewport } from "../config/presets.js";
5
7
  import { getExtensionPage, getStream, launch } from "puppeteer-stream";
6
8
  import { resizeAndMinimizeWindow, unminimizeWindow } from "./cdp.js";
7
- import { setBrowserChrome, setMaxSupportedViewport } from "./display.js";
8
9
  import { CONFIG } from "../config/index.js";
9
10
  import { clearChannelSelectionCaches } from "./channelSelection.js";
10
11
  import { emitSystemStatusChanged } from "../streaming/statusEmitter.js";
@@ -24,7 +25,7 @@ const { promises: fsPromises } = fs;
24
25
  * - dataDir: The filesystem location for persistent data (Chrome profile, extension files). Resolved via config/paths.ts, which is created on startup if it doesn't
25
26
  * exist.
26
27
  *
27
- * Stream tracking and ID generation have been moved to streaming/registry.ts for unified stream management across all output types (direct WebM, HLS, etc.).
28
+ * Stream tracking and ID generation have been moved to streaming/registry.ts for unified stream management across all output types (HLS, MPEG-TS, etc.).
28
29
  */
29
30
  // The shared browser instance used by all streaming sessions. Created on first stream request or during warmup. Set to null when the browser is not running or
30
31
  // has disconnected.
@@ -96,27 +97,13 @@ const managedPageIds = new Set();
96
97
  // Map from page ID to timestamp when a page was first observed as potentially stale (not associated with an active stream). Pages must remain in this state for
97
98
  // the configured grace period before being closed. This prevents race conditions where pages are briefly untracked during initialization or cleanup transitions.
98
99
  const potentiallyStalePages = new Map();
99
- /* Login mode allows users to authenticate with TV providers directly from the PrismCast web UI. When login mode is active:
100
- *
101
- * - A dedicated login tab is open in the browser showing the channel's URL
102
- * - The browser window is un-minimized so the user can interact with it
103
- * - New stream requests are blocked to prevent interference with the login process
104
- * - A 15-minute timeout automatically ends login mode if the user forgets
105
- *
106
- * The login page is NOT registered as a managed page to exclude it from stale page cleanup. We manage its lifecycle explicitly through startLoginMode/endLoginMode.
107
- */
108
- // Whether login mode is currently active.
109
- let loginModeActive = false;
110
- // The browser page (tab) used for login. Set when login starts, cleared when login ends.
111
- let loginPage = null;
112
- // The URL being used for login. Stored for status reporting.
113
- let loginUrl = null;
114
- // Timestamp when login mode started. Used for status reporting and timeout calculation.
115
- let loginStartTime = null;
116
- // Timeout handle for auto-ending login mode after 15 minutes.
117
- let loginTimeoutHandle = null;
118
- // Login timeout duration (15 minutes).
119
- const LOGIN_TIMEOUT_MS = 15 * 60 * 1000;
100
+ // Login mode management. State and functions live in login.ts; re-exported here so existing consumers don't need import path changes. clearLoginState,
101
+ // isLoginModeActive, and setBrowserAccessors are imported above; the first two for internal use, setBrowserAccessors for one-time initialization below.
102
+ export { clearLoginState, isLoginModeActive };
103
+ export { endLoginMode, getLoginPage, getLoginStatus, startLoginMode } from "./login.js";
104
+ // Inject browser accessors into the login module. This breaks the circular dependency (login needs getBrowserInstance/minimizeBrowserWindow, index needs login
105
+ // functions) using the same setter/getter pattern as setChromeUserAgent in chromeFetch.ts. Function declarations are hoisted, so both accessors are available here.
106
+ setBrowserAccessors({ getBrowserInstance, minimizeBrowserWindow });
120
107
  /**
121
108
  * Computes the current system status and emits it to SSE subscribers. Called when browser state changes significantly or when streams are added/removed.
122
109
  */
@@ -198,7 +185,7 @@ function getManagedPageId(page) {
198
185
  export async function ensureDataDirectory() {
199
186
  try {
200
187
  await fsPromises.mkdir(getDataDir(), { recursive: true });
201
- LOG.debug("browser", "Data directory ready: %s.", getDataDir());
188
+ LOG.debug("browser:lifecycle", "Data directory ready: %s.", getDataDir());
202
189
  }
203
190
  catch (error) {
204
191
  LOG.error("Failed to create data directory %s: %s.", getDataDir(), formatError(error));
@@ -279,13 +266,13 @@ export function killStaleChrome() {
279
266
  // when called from the process exit handler — Chrome may be running normally (e.g., after a capture probe timeout) and SIGKILL would corrupt its profile
280
267
  // databases, poisoning the Docker volume for subsequent restarts.
281
268
  process.kill(pid, "SIGTERM");
282
- LOG.debug("browser", "Sent SIGTERM to Chrome process %d.", pid);
269
+ LOG.debug("browser:lifecycle", "Sent SIGTERM to Chrome process %d.", pid);
283
270
  // Wait up to 5 seconds for Chrome to flush its databases and exit after SIGTERM. Containerized environments with software rendering and shared CPU may
284
271
  // need the full window.
285
272
  const TERM_WAIT_MS = 5000;
286
273
  if (!waitForChromeExit(pid, TERM_WAIT_MS, POLL_INTERVAL_MS)) {
287
274
  // SIGTERM didn't work. Escalate to SIGKILL. Orphaned Chrome processes (from a crashed parent or previous container) may not respond to SIGTERM.
288
- LOG.debug("browser", "Chrome did not exit after SIGTERM. Escalating to SIGKILL.");
275
+ LOG.debug("browser:lifecycle", "Chrome did not exit after SIGTERM. Escalating to SIGKILL.");
289
276
  try {
290
277
  process.kill(pid, "SIGKILL");
291
278
  }
@@ -353,7 +340,7 @@ function cleanStaleProfileFiles(profileDir) {
353
340
  const filePath = path.join(profileDir, file);
354
341
  try {
355
342
  fs.unlinkSync(filePath);
356
- LOG.debug("browser", "Removed stale profile file: %s.", file);
343
+ LOG.debug("browser:lifecycle", "Removed stale profile file: %s.", file);
357
344
  }
358
345
  catch (error) {
359
346
  // ENOENT means the file doesn't exist, which is the expected case after a clean shutdown. Any other error (permissions, filesystem issues) is worth
@@ -522,6 +509,28 @@ async function launchWithCustomArgs(opts) {
522
509
  * use by the preset system when determining effective viewport.
523
510
  * @param browser - The browser instance to use for detection.
524
511
  */
512
+ /**
513
+ * Formats the GPU capabilities into a human-readable suffix for the "Chrome ready" log line. The renderer string is already cleaned (ANGLE wrapper and Metal
514
+ * prefix stripped) at detection time, so this function uses it directly and appends hardware-accelerated codec names in brackets when available.
515
+ * @param gpu - The detected GPU capabilities.
516
+ * @returns A formatted string like " (GPU: Apple M1 [H264, HEVC])" or " (software rendering)".
517
+ */
518
+ function formatGpuSuffix(gpu) {
519
+ const codecs = [
520
+ gpu.av1HardwareEncoding && "AV1",
521
+ gpu.h264HardwareEncoding && "H264",
522
+ gpu.hevcHardwareEncoding && "HEVC"
523
+ ].filter(Boolean);
524
+ if (codecs.length > 0) {
525
+ return " (GPU: " + gpu.renderer + " [" + codecs.join(", ") + "])";
526
+ }
527
+ // No hardware encoding available. A GPU may be present for rendering but lack hardware encoding — show the GPU name without codecs if we have a non-trivial
528
+ // renderer string, otherwise label as software rendering.
529
+ if (gpu.renderer && (gpu.renderer !== "unknown")) {
530
+ return " (GPU: " + gpu.renderer + ")";
531
+ }
532
+ return " (software rendering)";
533
+ }
525
534
  async function detectDisplayDimensions(browser) {
526
535
  let tempPage = null;
527
536
  let usingTempPage = false;
@@ -558,7 +567,7 @@ async function detectDisplayDimensions(browser) {
558
567
  }
559
568
  // Chrome dimensions are negative — the window manager is still transitioning. Wait briefly and remeasure.
560
569
  if (attempt < 2) {
561
- LOG.debug("browser", "Display detection measured negative chrome dimensions (%s\u00d7%s, attempt %s). Retrying after window state settles.", dimensions.chromeWidth, dimensions.chromeHeight, attempt + 1);
570
+ LOG.debug("browser:lifecycle", "Display detection measured negative chrome dimensions (%s\u00d7%s, attempt %s). Retrying after window state settles.", dimensions.chromeWidth, dimensions.chromeHeight, attempt + 1);
562
571
  // eslint-disable-next-line no-await-in-loop
563
572
  await new Promise((resolve) => setTimeout(resolve, 100));
564
573
  }
@@ -578,7 +587,79 @@ async function detectDisplayDimensions(browser) {
578
587
  // Cache the results for use by the preset system and window sizing.
579
588
  setBrowserChrome(dimensions.chromeWidth, dimensions.chromeHeight);
580
589
  setMaxSupportedViewport(maxWidth, maxHeight);
581
- LOG.debug("browser", "Display detection complete: screen %s\u00d7%s, chrome %s\u00d7%s, max viewport %s\u00d7%s.", dimensions.availWidth, dimensions.availHeight, dimensions.chromeWidth, dimensions.chromeHeight, maxWidth, maxHeight);
590
+ LOG.debug("browser:lifecycle", "Display detection complete: screen %s\u00d7%s, chrome %s\u00d7%s, max viewport %s\u00d7%s.", dimensions.availWidth, dimensions.availHeight, dimensions.chromeWidth, dimensions.chromeHeight, maxWidth, maxHeight);
591
+ // Detect GPU capabilities via CDP SystemInfo.getInfo. This is the authoritative source for GPU identity and hardware encoding capabilities — it runs at the
592
+ // browser level (no page context or secure context required) and returns the actual list of hardware-accelerated video encoding profiles.
593
+ try {
594
+ const cdpSession = await browser.target().createCDPSession();
595
+ try {
596
+ const sysInfo = await cdpSession.send("SystemInfo.getInfo");
597
+ // Extract the GPU renderer from the primary device. The WebGL unmasked renderer provides a richer string (includes ANGLE backend info), so we query
598
+ // that as well and prefer it when available.
599
+ const deviceName = (sysInfo.gpu.devices.length > 0) ? sysInfo.gpu.devices[0].deviceString : "unknown";
600
+ // Get the unmasked WebGL renderer for a more descriptive GPU identity string.
601
+ const webglRenderer = await evaluateWithAbort(targetPage, () => {
602
+ const canvas = document.createElement("canvas");
603
+ const gl = canvas.getContext("webgl");
604
+ if (!gl) {
605
+ return "unknown";
606
+ }
607
+ const ext = gl.getExtension("WEBGL_debug_renderer_info");
608
+ return ext ? String(gl.getParameter(ext.UNMASKED_RENDERER_WEBGL)) : String(gl.getParameter(gl.RENDERER));
609
+ });
610
+ // Extract the meaningful GPU name. ANGLE wraps the actual GPU identity: "ANGLE (Vendor, GPU Name, API Version)". The GPU name is the second
611
+ // comma-separated field. For non-ANGLE renderers, use the device string from CDP.
612
+ let renderer = webglRenderer;
613
+ const angleMatch = /^ANGLE \([^,]+, ([^,]+)/.exec(webglRenderer);
614
+ if (angleMatch) {
615
+ renderer = angleMatch[1].trim();
616
+ // Strip the "ANGLE Metal Renderer: " prefix that macOS adds.
617
+ const metalPrefix = "ANGLE Metal Renderer: ";
618
+ if (renderer.startsWith(metalPrefix)) {
619
+ renderer = renderer.slice(metalPrefix.length);
620
+ }
621
+ }
622
+ else if ((webglRenderer === "WebKit WebGL") || (webglRenderer === "unknown")) {
623
+ renderer = deviceName;
624
+ }
625
+ // Determine hardware encoding capability. Two paths:
626
+ // 1. featureStatus.video_encode === "enabled" — authoritative Chrome-level flag indicating the platform's hardware encoding framework is active
627
+ // (VideoToolbox on macOS, VA-API on Linux, DXVA on Windows). When enabled, H.264 hardware encoding is always available.
628
+ // 2. videoEncoding profile array — lists specific hardware-accelerated codec profiles (e.g., "H264 Main", "HEVC Main"). Populated on Linux/Windows
629
+ // via VA-API/DXVA but empty on macOS where VideoToolbox doesn't enumerate through this interface.
630
+ const videoEncodeEnabled = sysInfo.gpu.featureStatus?.video_encode === "enabled";
631
+ const h264FromProfiles = sysInfo.gpu.videoEncoding.some((e) => e.profile.startsWith("H264"));
632
+ const hevcFromProfiles = sysInfo.gpu.videoEncoding.some((e) => e.profile.startsWith("HEVC"));
633
+ const av1FromProfiles = sysInfo.gpu.videoEncoding.some((e) => e.profile.startsWith("AV1"));
634
+ // H.264 hardware encoding is available when either the feature flag or the profile list confirms it.
635
+ const h264Hardware = videoEncodeEnabled || h264FromProfiles;
636
+ // HEVC and AV1 hardware encoding: check the profile list first (authoritative on Linux/Windows). On macOS (empty profile list), probe via MediaRecorder
637
+ // in the page context — MediaRecorder.isTypeSupported works in non-secure contexts unlike VideoEncoder.
638
+ let hevcHardware = hevcFromProfiles;
639
+ let av1Hardware = av1FromProfiles;
640
+ if (videoEncodeEnabled && (!hevcHardware || !av1Hardware)) {
641
+ const [hevcSupported, av1Supported] = await evaluateWithAbort(targetPage, () => {
642
+ if (typeof MediaRecorder === "undefined") {
643
+ return [false, false];
644
+ }
645
+ return [
646
+ MediaRecorder.isTypeSupported("video/mp4;codecs=hvc1.1.6.L93.B0"),
647
+ MediaRecorder.isTypeSupported("video/mp4;codecs=av01.0.08M.08")
648
+ ];
649
+ });
650
+ hevcHardware ||= hevcSupported;
651
+ av1Hardware ||= av1Supported;
652
+ }
653
+ setGpuCapabilities({ av1HardwareEncoding: av1Hardware, h264HardwareEncoding: h264Hardware, hevcHardwareEncoding: hevcHardware, renderer });
654
+ LOG.debug("browser:lifecycle", "GPU detection: device=%s, renderer=%s, H.264=%s, HEVC=%s, AV1=%s, video_encode=%s, encoding profiles=%s.", deviceName, renderer, h264Hardware, hevcHardware, av1Hardware, sysInfo.gpu.featureStatus?.video_encode ?? "unknown", sysInfo.gpu.videoEncoding.map((e) => e.profile).join(", ") || "none");
655
+ }
656
+ finally {
657
+ void cdpSession.detach().catch(() => { });
658
+ }
659
+ }
660
+ catch (gpuError) {
661
+ LOG.debug("browser:lifecycle", "GPU detection failed: %s.", String(gpuError));
662
+ }
582
663
  // Check if the configured preset needs to be degraded and warn the user.
583
664
  const presetResult = getEffectivePreset(CONFIG);
584
665
  if (presetResult.degraded && presetResult.maxViewport) {
@@ -626,20 +707,10 @@ function handleBrowserDisconnect() {
626
707
  }
627
708
  // Clear all channel selection caches. Cached state (guide row positions, discovered page URLs) may be stale in a new browser session.
628
709
  clearChannelSelectionCaches();
629
- // Clear login state if login mode was active. We clear directly rather than calling endLoginMode() because the browser is already gone and we don't want to
630
- // attempt any browser operations.
631
- if (loginModeActive) {
632
- if (loginTimeoutHandle) {
633
- clearTimeout(loginTimeoutHandle);
634
- loginTimeoutHandle = null;
635
- }
636
- loginModeActive = false;
637
- loginPage = null;
638
- loginUrl = null;
639
- loginStartTime = null;
640
- if (!gracefulShutdownInProgress) {
641
- LOG.info("Login mode ended due to browser disconnect.");
642
- }
710
+ // Clear login state if login mode was active. We use clearLoginState() rather than endLoginMode() because the browser is already gone and we don't want to
711
+ // attempt any browser operations (page close, window minimize).
712
+ if (clearLoginState() && !gracefulShutdownInProgress) {
713
+ LOG.info("Login mode ended due to browser disconnect.");
643
714
  }
644
715
  // Only log the error for unexpected disconnects. During graceful shutdown, closeBrowser() set the flag and this disconnect is intentional.
645
716
  if (!gracefulShutdownInProgress) {
@@ -737,7 +808,9 @@ async function launchBrowser() {
737
808
  browserLaunchTime = Date.now();
738
809
  currentChromeVersion = chromeVersion;
739
810
  setChromeUserAgent(userAgent);
740
- LOG.info("Chrome ready: %s.", chromeVersion);
811
+ const gpu = getGpuCapabilities();
812
+ const gpuSuffix = gpu ? formatGpuSuffix(gpu) : "";
813
+ LOG.info("Chrome ready: %s%s.", chromeVersion, gpuSuffix);
741
814
  LOG.debug("timing:browser", "Browser ready. Total: %sms.", browserElapsed());
742
815
  // Emit system status update for SSE subscribers.
743
816
  await emitCurrentSystemStatus();
@@ -763,6 +836,14 @@ async function launchBrowser() {
763
836
  export function getChromeVersion() {
764
837
  return currentChromeVersion;
765
838
  }
839
+ /**
840
+ * Returns the current browser instance, or null if not launched. Unlike getCurrentBrowser(), this does not lazily launch. Used by modules that need to check
841
+ * browser state without triggering a launch (e.g., login mode checking connectivity before opening a tab).
842
+ * @returns The browser instance, or null if not running.
843
+ */
844
+ export function getBrowserInstance() {
845
+ return currentBrowser;
846
+ }
766
847
  /**
767
848
  * Checks if the browser is currently connected and usable. This is a synchronous check that can be used before attempting browser operations.
768
849
  * @returns True if the browser is connected and ready for use, false otherwise.
@@ -818,7 +899,7 @@ export async function minimizeBrowserWindow() {
818
899
  }
819
900
  }
820
901
  // Resizing/minimizing is not critical - log a warning but don't fail the operation.
821
- LOG.debug("browser", "Could not resize and minimize browser window: %s.", formatError(error));
902
+ LOG.debug("browser:lifecycle", "Could not resize and minimize browser window: %s.", formatError(error));
822
903
  }
823
904
  }
824
905
  /**
@@ -877,7 +958,7 @@ export async function closeBrowser() {
877
958
  chromeProcess.on("exit", () => { resolve(true); });
878
959
  });
879
960
  chromeProcess.kill("SIGTERM");
880
- LOG.debug("browser", "Sent SIGTERM to Chrome process %d.", chromeProcess.pid);
961
+ LOG.debug("browser:lifecycle", "Sent SIGTERM to Chrome process %d.", chromeProcess.pid);
881
962
  // Wait for Chrome to exit after SIGTERM, with a timeout. If Chrome doesn't exit in time, escalate to SIGKILL.
882
963
  const termTimeout = cancellableTimeout(TERM_WAIT_MS);
883
964
  const exitedAfterTerm = await Promise.race([exitPromise, termTimeout.promise]);
@@ -885,7 +966,7 @@ export async function closeBrowser() {
885
966
  if (!exitedAfterTerm) {
886
967
  // SIGTERM didn't work within the timeout. Escalate to SIGKILL. Orphaned Chrome processes (from a crashed parent or previous container) may not
887
968
  // respond to SIGTERM.
888
- LOG.debug("browser", "Chrome did not exit after SIGTERM. Escalating to SIGKILL.");
969
+ LOG.debug("browser:lifecycle", "Chrome did not exit after SIGTERM. Escalating to SIGKILL.");
889
970
  chromeProcess.kill("SIGKILL");
890
971
  const killTimeout = cancellableTimeout(KILL_WAIT_MS);
891
972
  await Promise.race([exitPromise, killTimeout.promise]);
@@ -901,142 +982,6 @@ export async function closeBrowser() {
901
982
  clearChromePid();
902
983
  cleanStaleProfileFiles(getChromeDataDir(CONFIG));
903
984
  }
904
- /* These functions manage the login mode workflow, allowing users to authenticate with TV providers through the browser. The workflow is:
905
- *
906
- * 1. User clicks "Login" on a channel in the web UI
907
- * 2. startLoginMode() opens a new tab with the channel's URL and un-minimizes the browser
908
- * 3. User completes authentication in the visible browser window
909
- * 4. User clicks "Done" in the web UI, or closes the tab, or the 15-minute timeout fires
910
- * 5. endLoginMode() closes the login tab (if still open) and re-minimizes the browser
911
- *
912
- * During login mode, new stream requests are blocked to prevent the browser from navigating away or creating conflicting tabs.
913
- */
914
- /**
915
- * Starts login mode by opening a new browser tab with the specified URL and un-minimizing the browser window. The user can then authenticate with their TV
916
- * provider in the visible browser.
917
- *
918
- * Login mode blocks new stream requests until it ends (via endLoginMode, tab close detection, or timeout).
919
- * @param url - The URL to navigate to for authentication.
920
- * @returns Object indicating success or failure with optional error message.
921
- */
922
- export async function startLoginMode(url) {
923
- // Check if login mode is already active.
924
- if (loginModeActive) {
925
- return { error: "Login is already in progress.", success: false };
926
- }
927
- // Ensure browser is available.
928
- if (!currentBrowser?.connected) {
929
- return { error: "Browser is not connected.", success: false };
930
- }
931
- try {
932
- // Create a new page for login. We intentionally do NOT register it as a managed page so stale page cleanup ignores it.
933
- loginPage = await currentBrowser.newPage();
934
- // Set up handler for tab close detection. If the user closes the tab manually, we should end login mode automatically.
935
- loginPage.on("close", () => {
936
- // Only auto-end if this is still the active login page.
937
- if (loginModeActive && loginPage) {
938
- LOG.info("Login tab was closed. Ending login mode.");
939
- // Use void to handle the promise without awaiting (we're in an event handler).
940
- void endLoginMode();
941
- }
942
- });
943
- // Navigate to the login URL.
944
- await loginPage.goto(url, { waitUntil: "domcontentloaded" });
945
- // Un-minimize the browser window so the user can see and interact with it.
946
- await unminimizeWindow(loginPage);
947
- // Set login state.
948
- loginModeActive = true;
949
- loginUrl = url;
950
- loginStartTime = Date.now();
951
- // Set up the 15-minute timeout.
952
- loginTimeoutHandle = setTimeout(() => {
953
- LOG.warn("Login mode timed out after 15 minutes. Ending login mode.");
954
- void endLoginMode();
955
- }, LOGIN_TIMEOUT_MS);
956
- LOG.info("Login mode started for %s.", url);
957
- return { success: true };
958
- }
959
- catch (error) {
960
- // Clean up on failure.
961
- if (loginPage && !loginPage.isClosed()) {
962
- try {
963
- await loginPage.close();
964
- }
965
- catch (_closeError) {
966
- // Ignore close errors.
967
- }
968
- }
969
- loginPage = null;
970
- return { error: formatError(error), success: false };
971
- }
972
- }
973
- /**
974
- * Ends login mode by closing the login tab (if still open) and re-minimizing the browser window. This function is idempotent - it's safe to call multiple times
975
- * or when login mode is not active.
976
- *
977
- * Called by:
978
- * - User clicking "Done" in the web UI (POST /auth/done)
979
- * - Tab close detection (user closes the tab manually)
980
- * - 15-minute timeout
981
- * - Browser disconnect handler (cleanup)
982
- */
983
- export async function endLoginMode() {
984
- // Clear the timeout if it hasn't fired yet.
985
- if (loginTimeoutHandle) {
986
- clearTimeout(loginTimeoutHandle);
987
- loginTimeoutHandle = null;
988
- }
989
- // Close the login page if it's still open.
990
- if (loginPage && !loginPage.isClosed()) {
991
- try {
992
- await loginPage.close();
993
- }
994
- catch (_error) {
995
- // Ignore close errors - the page may have already been closed.
996
- }
997
- }
998
- // Clear login state.
999
- const wasActive = loginModeActive;
1000
- loginModeActive = false;
1001
- loginPage = null;
1002
- loginUrl = null;
1003
- loginStartTime = null;
1004
- // Re-minimize the browser window.
1005
- if (wasActive && currentBrowser?.connected) {
1006
- await minimizeBrowserWindow();
1007
- }
1008
- if (wasActive) {
1009
- LOG.info("Login mode ended.");
1010
- }
1011
- }
1012
- /**
1013
- * Returns whether login mode is currently active. Used by the stream handler to block new stream requests during login.
1014
- * @returns True if login mode is active, false otherwise.
1015
- */
1016
- export function isLoginModeActive() {
1017
- return loginModeActive;
1018
- }
1019
- /**
1020
- * Returns the current login status including whether active, the URL being used, and when login started. Used by the /auth/status API endpoint.
1021
- * @returns Login status object.
1022
- */
1023
- export function getLoginStatus() {
1024
- return {
1025
- active: loginModeActive,
1026
- startTime: loginStartTime,
1027
- url: loginUrl
1028
- };
1029
- }
1030
- /**
1031
- * Returns the active login page if login mode is currently active. Used by the profile test flow to evaluate CSS selectors against the live page DOM.
1032
- * @returns The login page, or null if login mode is not active.
1033
- */
1034
- export function getLoginPage() {
1035
- if (!loginModeActive) {
1036
- return null;
1037
- }
1038
- return loginPage;
1039
- }
1040
985
  /* Over time, browser pages (tabs) may accumulate if cleanup fails during stream termination. This can happen due to race conditions, errors during cleanup, or
1041
986
  * edge cases in stream lifecycle management. Each orphaned page consumes memory and may continue running JavaScript, so we periodically clean them up.
1042
987
  *
@@ -1146,12 +1091,12 @@ export async function cleanupStalePages() {
1146
1091
  }
1147
1092
  // Log only if we actually closed something, to avoid log spam from idle cleanup runs.
1148
1093
  if (closedCount > 0) {
1149
- LOG.debug("browser", "Cleaned up %s stale page(s).", closedCount);
1094
+ LOG.debug("browser:lifecycle", "Cleaned up %s stale page(s).", closedCount);
1150
1095
  }
1151
1096
  }
1152
1097
  catch (error) {
1153
1098
  // Cleanup failure is not critical - log a warning and try again next interval.
1154
- LOG.debug("browser", "Stale page cleanup failed: %s.", formatError(error));
1099
+ LOG.debug("browser:lifecycle", "Stale page cleanup failed: %s.", formatError(error));
1155
1100
  }
1156
1101
  }
1157
1102
  /**
@@ -1182,7 +1127,7 @@ export function stopStalePageCleanup() {
1182
1127
  */
1183
1128
  function checkBrowserRestart() {
1184
1129
  // Skip if the server is shutting down, login mode is active, or the browser is not connected.
1185
- if (gracefulShutdownInProgress || loginModeActive || !currentBrowser || !currentBrowser.connected || !browserLaunchTime) {
1130
+ if (gracefulShutdownInProgress || isLoginModeActive() || !currentBrowser || !currentBrowser.connected || !browserLaunchTime) {
1186
1131
  return;
1187
1132
  }
1188
1133
  // Skip if the browser has not exceeded the maximum age.
@@ -1193,7 +1138,7 @@ function checkBrowserRestart() {
1193
1138
  // If there are active streams, cancel any pending quiet timer and return. Streams that start during the quiet period reset the countdown.
1194
1139
  if (getStreamCount() > 0) {
1195
1140
  if (restartQuietTimer) {
1196
- LOG.debug("browser", "Browser restart quiet period cancelled — streams are active.");
1141
+ LOG.debug("browser:lifecycle", "Browser restart quiet period cancelled — streams are active.");
1197
1142
  clearTimeout(restartQuietTimer);
1198
1143
  restartQuietTimer = null;
1199
1144
  }
@@ -1201,7 +1146,7 @@ function checkBrowserRestart() {
1201
1146
  }
1202
1147
  // No active streams and the browser is old enough. Start the quiet timer if one is not already running.
1203
1148
  if (!restartQuietTimer) {
1204
- LOG.debug("browser", "Browser uptime exceeds threshold. Quiet period started — restart will proceed if no streams start within %s minutes.", Math.round(BROWSER_RESTART_QUIET_PERIOD / 60000));
1149
+ LOG.debug("browser:lifecycle", "Browser uptime exceeds threshold. Quiet period started — restart will proceed if no streams start within %s minutes.", Math.round(BROWSER_RESTART_QUIET_PERIOD / 60000));
1205
1150
  restartQuietTimer = setTimeout(() => {
1206
1151
  void executeBrowserRestart();
1207
1152
  }, BROWSER_RESTART_QUIET_PERIOD);
@@ -1216,8 +1161,8 @@ async function executeBrowserRestart() {
1216
1161
  restartQuietTimer = null;
1217
1162
  // Final guard: re-check all preconditions. Conditions may have changed during the quiet period (e.g., a stream started just before the timer fired, login
1218
1163
  // mode was activated, or the browser disconnected on its own).
1219
- if (gracefulShutdownInProgress || loginModeActive || (getStreamCount() > 0) || !currentBrowser || !currentBrowser.connected || !browserLaunchTime) {
1220
- LOG.debug("browser", "Browser restart aborted — preconditions no longer met.");
1164
+ if (gracefulShutdownInProgress || isLoginModeActive() || (getStreamCount() > 0) || !currentBrowser || !currentBrowser.connected || !browserLaunchTime) {
1165
+ LOG.debug("browser:lifecycle", "Browser restart aborted — preconditions no longer met.");
1221
1166
  return;
1222
1167
  }
1223
1168
  const age = Date.now() - browserLaunchTime;
@@ -1310,7 +1255,7 @@ export async function prepareExtension() {
1310
1255
  throw error;
1311
1256
  }
1312
1257
  }
1313
- LOG.debug("browser", "Extension files prepared successfully.");
1258
+ LOG.debug("browser:lifecycle", "Extension files prepared successfully.");
1314
1259
  }
1315
1260
  catch (error) {
1316
1261
  LOG.error("Extension preparation failed: %s.", formatError(error));
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/browser/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/browser/index.ts"],"names":[],"mappings":"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"}