From 71aa88913391d7f8cce9151d47fabbb27ad821ac Mon Sep 17 00:00:00 2001 From: Daniel Slay Date: Sun, 13 Sep 2026 23:21:33 +0000 Subject: [PATCH] =?UTF-8?q?cctv:=20live-video=20panel=20card=20=E2=80=94?= =?UTF-8?q?=20canvas=20painted=20from=20the=20active=20camera's=20video=20?= =?UTF-8?q?element,=2016:9=20wrap,=20gated=20against=20the=20still-image?= =?UTF-8?q?=20path?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/layers/cctv/presentation.js | 1 + src/ui/applicationShell.js | 1 + src/ui/cctvPresentation.js | 43 +++++++++++++++++++++++++++++- src/ui/shellElements.js | 1 + src/ui/styles/cctv.css | 18 +++++++++++++ src/ui/templates/layer-panels.html | 1 + 6 files changed, 64 insertions(+), 1 deletion(-) diff --git a/src/layers/cctv/presentation.js b/src/layers/cctv/presentation.js index 742869877..13fa751bd 100644 --- a/src/layers/cctv/presentation.js +++ b/src/layers/cctv/presentation.js @@ -83,6 +83,7 @@ export function createPresentation({ mountHeightM: camera.mountHeightM, active: isActive, feedType: camera.feedType, + isVideo: parts.model.isVideoFeedType(camera.feedType), sourceKind: health?.sourceKind || camera.sourceKind || diff --git a/src/ui/applicationShell.js b/src/ui/applicationShell.js index e54b7bf25..10695cf92 100644 --- a/src/ui/applicationShell.js +++ b/src/ui/applicationShell.js @@ -2618,6 +2618,7 @@ export class StyleManager { _cctvFocusBtn: this._cctvFocusBtn, _cctvFrame: this._cctvFrame, _cctvFrameWrap: this._cctvFrameWrap, + _cctvVideo: this._cctvVideo, _cctvMeta: this._cctvMeta, _cctvNearestBtn: this._cctvNearestBtn, _cctvNextBtn: this._cctvNextBtn, diff --git a/src/ui/cctvPresentation.js b/src/ui/cctvPresentation.js index a6db6893e..6ea2aa318 100644 --- a/src/ui/cctvPresentation.js +++ b/src/ui/cctvPresentation.js @@ -164,7 +164,46 @@ export function _renderCctvState(state) { } } - if (this._cctvFrame) { + // Live video: for HLS cameras, paint the active camera's decoded