UI Audit: New Recorder modal — codec/audio/container sections feel stub-like #150

Closed
opened 2026-05-28 19:30:40 -04:00 by zgaetano · 0 comments
Owner

Summary

The new-recorder modal "Master recording" section has three tabs (Video, Audio, Container) but most fields are static placeholders that don't actually do anything:

Audio tab:
  Audio codec → "PCM" (select, no other options visible)
  Sample rate → "48 kHz" (select)
  Channels → "2.0 stereo" (select)
  Bit depth → "24-bit" (select)

Video tab:
  Resolution → "Source (native)" (select)
  Color space → "Rec. 709" (select)
  Bit depth → "10-bit" (select)

These all render as <Field label="…" value="…" select /> which is a presentational stub component — they don't bind to recorder state and the values they show don't get saved.

What actually saves

Of the modal's fields, only these write to the recorder row:

  • name
  • source_type
  • source_config (URL for SRT/RTMP, empty for SDI)
  • device_index, node_id (SDI/Deltacast)
  • generate_proxy
  • recording_codec
  • recording_container
  • project_id

Everything else on the Audio/Container/Resolution tabs is decoration.

Two options:

A. Drop the stubs. Remove the Audio tab, Resolution dropdown, Color space, Bit depth. They're not connected, they suggest features that don't exist, and they take vertical space.

B. Wire them up. Map to existing recorder columns (recording_audio_codec, recording_audio_channels, recording_resolution, etc. — these columns already exist in the DB).

B is probably right since the backend supports it. The Field stub needs to be replaced with a real bound <select>.

Also

  • "Fixed proxy profile — not configurable." → if it's not configurable, why is there a Proxy collapsible section showing tags H.264 / 2 Mbps / MP4? Either expose the proxy fields (the DB has proxy_codec, proxy_video_bitrate, etc.) or hide the section.
  • "Generate proxy" toggle → does nothing in current code (proxy is queued by worker regardless of this for SDI per recent fix). Either remove or repurpose.

Discovered during full web-ui audit 2026-05-28.

## Summary The new-recorder modal "Master recording" section has three tabs (Video, Audio, Container) but most fields are static placeholders that don't actually do anything: ``` Audio tab: Audio codec → "PCM" (select, no other options visible) Sample rate → "48 kHz" (select) Channels → "2.0 stereo" (select) Bit depth → "24-bit" (select) Video tab: Resolution → "Source (native)" (select) Color space → "Rec. 709" (select) Bit depth → "10-bit" (select) ``` These all render as `<Field label="…" value="…" select />` which is a presentational stub component — they don't bind to recorder state and the values they show don't get saved. ## What actually saves Of the modal's fields, only these write to the recorder row: - `name` - `source_type` - `source_config` (URL for SRT/RTMP, empty for SDI) - `device_index`, `node_id` (SDI/Deltacast) - `generate_proxy` - `recording_codec` - `recording_container` - `project_id` Everything else on the Audio/Container/Resolution tabs is decoration. ## Recommended fix Two options: **A. Drop the stubs.** Remove the Audio tab, Resolution dropdown, Color space, Bit depth. They're not connected, they suggest features that don't exist, and they take vertical space. **B. Wire them up.** Map to existing recorder columns (`recording_audio_codec`, `recording_audio_channels`, `recording_resolution`, etc. — these columns already exist in the DB). **B** is probably right since the backend supports it. The Field stub needs to be replaced with a real bound `<select>`. ## Also - "Fixed proxy profile — not configurable." → if it's not configurable, why is there a `Proxy` collapsible section showing tags `H.264 / 2 Mbps / MP4`? Either expose the proxy fields (the DB has `proxy_codec`, `proxy_video_bitrate`, etc.) or hide the section. - "Generate proxy" toggle → does nothing in current code (proxy is queued by worker regardless of this for SDI per recent fix). Either remove or repurpose. Discovered during full web-ui audit 2026-05-28.
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference: WildDragonLLC/dragonflight#150
No description provided.