17916571b3
fix: lowercase codec enum, recorder .done() bug, TrueNAS deploy override
...
- frontend types & components now use lowercase codec values (prores/dnxhd/
h264/uncompressed) to match backend CodecType enum. This was the real
cause of the silent Start Recording 422.
- recorder.py: replaced last .done() call on asyncio.subprocess.Process
with returncode-is-None check (same bug previously fixed in hls.py).
This was causing /api/ports/{n} to 500 during active recording and
health checks to fail while any port was running.
- useRecorder now parses pydantic 422 error bodies so field-level detail
reaches the UI, and App.tsx shows a fixed error banner.
- Added docker-compose.truenas.yml: no deltacast device passthrough,
frontend on :8088. Lavfi testsrc2 fallback kicks in automatically and
feeds the full HLS preview + recording pipeline with a test signal
(1080p30 + 1kHz tone). Verified end-to-end on Wooglin: 442MB/1:56s
H.264 MP4 + working HLS playlist.
2026-04-14 16:20:57 -04:00
575502410f
feat: add light/dark theme toggle with localStorage persistence
2026-04-14 10:14:32 -04:00
51e7e8f327
feat: add light theme with data-theme toggle support
2026-04-14 10:13:41 -04:00
2e62f5822c
feat: add manual preview start button and HLS polling
2026-04-14 10:13:16 -04:00
ad863c1ed5
feat: add per-port SCTE-35 inject button and SRT destination display
2026-04-14 10:05:13 -04:00
b3f496269c
feat: wire per-port SCTE35, 8-port grid, multi-destination defaults
2026-04-14 10:04:11 -04:00
7cf45ceee8
feat: multi-destination SRT in ConfigPanel
2026-04-14 10:03:26 -04:00
e39241d7b1
feat: add per-port SCTE35 inject to useRecorder hook
2026-04-14 10:02:29 -04:00
fd4c364144
feat: add SRTDestination type and multi-destination support
2026-04-14 10:02:14 -04:00
67feebec4c
feat: update index.html title and favicon for Dragon Encode branding
2026-04-14 09:48:14 -04:00
e24765ab59
feat: add Dragon Encode logo to frontend/public
2026-04-14 09:48:07 -04:00
275c5ad2fa
feat: redesign ConfigPanel with dark modal and custom toggles
2026-04-14 09:45:59 -04:00
5274ca5460
feat: redesign VideoPreview with dark broadcast monitor frame
2026-04-14 09:45:16 -04:00
4835f7c4b6
feat: redesign SCTE35Trigger with amber broadcast controls
2026-04-14 09:45:05 -04:00
b3685565ea
feat: redesign PortCard with broadcast panel aesthetic
2026-04-14 09:44:51 -04:00
e2e569d12e
feat: redesign App.tsx with broadcast control room UI
2026-04-14 09:44:20 -04:00
6658bffdbd
feat: redesign frontend with Dragon Encode broadcast aesthetic
2026-04-14 09:43:50 -04:00
2c8fcf0192
Add frontend/vite.config.ts
2026-04-14 09:21:20 -04:00
49178acc24
Add frontend/tsconfig.node.json
2026-04-14 09:21:20 -04:00
a27248412f
Add frontend/tsconfig.json
2026-04-14 09:21:19 -04:00
51387d938b
Add frontend/tailwind.config.js
2026-04-14 09:21:19 -04:00
53f552bd9a
Add frontend/src/types.ts
2026-04-14 09:21:19 -04:00
c850a5fdc9
Add frontend/src/main.tsx
2026-04-14 09:21:18 -04:00
e2ac2e8e21
Add frontend/src/index.css
2026-04-14 09:21:18 -04:00
8691ccd060
Add frontend/src/hooks/useWebSocket.ts
2026-04-14 09:21:17 -04:00
a9472e4715
Add frontend/src/hooks/useRecorder.ts
2026-04-14 09:21:17 -04:00
df84c6cbbc
Add frontend/src/components/VideoPreview.tsx
2026-04-14 09:21:17 -04:00
0c1f78637b
Add frontend/src/components/SCTE35Trigger.tsx
2026-04-14 09:21:16 -04:00
606004a443
Add frontend/src/components/PortCard.tsx
2026-04-14 09:21:16 -04:00
d8e4386426
Add frontend/src/components/ConfigPanel.tsx
2026-04-14 09:21:16 -04:00
52df4d0e11
Add frontend/src/App.tsx
2026-04-14 09:21:15 -04:00
6f45131b57
Add frontend/postcss.config.js
2026-04-14 09:21:15 -04:00
ec4df6b33e
Add frontend/package.json
2026-04-14 09:21:15 -04:00
47ebf79794
Add frontend/nginx.conf
2026-04-14 09:21:14 -04:00
3cf5a1afbb
Add frontend/index.html
2026-04-14 09:21:14 -04:00
cc1c3484ba
Add frontend/Dockerfile
2026-04-14 09:21:14 -04:00