dragonflight/services
ZGaetano 4be12c6f9a fix(stability): spread capture encodes across all GPUs + GOP parse + filmstrip retry
VIDEO FREEZE UNDER BURN (transient stall, self-recovers): all 8 capture
sidecars ran NVIDIA_VISIBLE_DEVICES=all with no -gpu selector, so ffmpeg
nvenc put every session (8 HEVC masters + 8 HLS = 16) on physical GPU 0
while the other two L4s sat idle. GPU 0 NVENC hit 86%, encode fell below
realtime, the framecache ring lapped → video froze → caught up → recovered.
Bridge verified smooth at 60fps throughout. FIX: node-agent now round-robins
each sidecar to a GPU by capture port (port % detected-GPU-count) via
NVIDIA_VISIBLE_DEVICES, honoring an explicit gpuUuid when set. Auto-detects
GPU count from nvidia-smi (override CAPTURE_GPU_COUNT). ~3 encoders/GPU now.

GOP PARSE: Number.parseFloat('60000/1001') returns 60000, making GOP 120000
(near open-GOP) instead of ~120. Added parseFps() to handle rational rates;
fixed hevcNvencArgs + buildHlsVideoArgs.

FILMSTRIP: RustFS object store intermittently returns NoSuchKey on GET for
keys that List/Head confirm exist, blanking the strip. Generation/queue/DB
all verified healthy (13/15 assets HAVE filmstrips). FIX: API now serves the
filmstrip JSON through itself with retry-on-NoSuchKey (succeeds within a
couple attempts) instead of handing the browser a signed URL — also closes
the S3 CORS gap. Frontend updated to consume the direct JSON.
2026-06-04 15:56:44 +00:00
..
capture fix(stability): spread capture encodes across all GPUs + GOP parse + filmstrip retry 2026-06-04 15:56:44 +00:00
framecache fix: declare all slot functions in slot.h to prevent 64-bit pointer truncation 2026-06-03 20:16:35 +00:00
mam-api fix(stability): spread capture encodes across all GPUs + GOP parse + filmstrip retry 2026-06-04 15:56:44 +00:00
node-agent fix(stability): spread capture encodes across all GPUs + GOP parse + filmstrip retry 2026-06-04 15:56:44 +00:00
playout feat(playout): redesigned MCR screen + SCTE-35 end-to-end 2026-05-31 19:58:02 -04:00
premiere-plugin diag(premiere-plugin): v1.2.5 — no-op IIFE writes to Documents/ + reports lf.open result 2026-05-28 03:59:40 +00:00
premiere-plugin-uxp fix(uxp): remove broken v2.2.3 ccx — stay on v2.2.2 2026-06-03 16:07:32 +00:00
web-ui fix(stability): spread capture encodes across all GPUs + GOP parse + filmstrip retry 2026-06-04 15:56:44 +00:00
worker fix(worker): close promotion scanner queue on SIGTERM 2026-06-04 14:06:41 +00:00