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
122d732db2
fix: use returncode is None instead of .done() for subprocess check
2026-04-14 11:32:17 -04:00
565c524c6f
fix: fall back to lavfi test source when deltacast device absent; fix bitrate string handling; support multi-destination SRT
2026-04-14 11:26:40 -04:00
cd68f4f78f
fix: fall back to lavfi testsrc when deltacast device unavailable
2026-04-14 11:26:17 -04:00
f9f29855b9
fix: bitrate field should be str not int (accepts values like 185M)
2026-04-14 11:25:46 -04:00
d9391980f6
fix: remove deltacast4-7 devices (card not present), keep port count=8
2026-04-14 11:15:41 -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
7e51da50c8
fix: inject hls_manager into routes module so preview endpoints work
2026-04-14 10:12:46 -04:00
b936647abb
feat: wire HLS manager into routes, add preview start/stop endpoints
2026-04-14 10:12:30 -04:00
36a1e4a80e
fix: set DELTACAST_PORT_COUNT=8, add deltacast4-7 devices
2026-04-14 10:11:48 -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
9e9ed27c80
feat: add port_index and srt_destination_url to SCTE35 inject_marker
2026-04-14 10:01:57 -04:00
5f2f61edfe
feat: add per-port SCTE35 inject endpoint
2026-04-14 10:01:22 -04:00
7377aee6fa
feat: add multi-destination SRT support and per-port SCTE35
2026-04-14 10:00:46 -04:00
6b3ad13269
feat: increase port count to 8
2026-04-14 10:00:23 -04:00
34a679d365
fix: replace absolute backend.app imports with relative imports
2026-04-14 09:55:39 -04:00
979616e43b
fix: replace absolute backend.app imports with relative imports
2026-04-14 09:55:33 -04:00
7f1951a871
fix: replace absolute backend.app imports with relative imports
2026-04-14 09:55:22 -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