From 2812705d1ce492c71d24017a1bc3259853d0b6e2 Mon Sep 17 00:00:00 2001 From: ZGaetano Date: Thu, 4 Jun 2026 11:52:07 +0000 Subject: [PATCH] feat(recorders): expose XDCAM HD422 bitrate field in growing mode Growing mode now shows an editable 'XDCAM HD422 bitrate (Mbps)' input (codec stays fixed to the growing MXF path). Default seeds to 50 Mbps for growing, 25 for GPU master. Backend already honored recording_video_bitrate via _buildGrowingOrchestrator -b:v/minrate/maxrate; this surfaces the control in the config modal. --- services/web-ui/public/screens-ingest.jsx | 21 ++++++++++++++++++--- 1 file changed, 18 insertions(+), 3 deletions(-) diff --git a/services/web-ui/public/screens-ingest.jsx b/services/web-ui/public/screens-ingest.jsx index 04022d7..4d3ddc0 100644 --- a/services/web-ui/public/screens-ingest.jsx +++ b/services/web-ui/public/screens-ingest.jsx @@ -614,7 +614,10 @@ function RecorderConfigModal({ recorder, onClose, onSaved }) { const [label, setLabel] = React.useState(recorder.label || ''); const [codec, setCodec] = React.useState(recorder.recording_codec || 'hevc_nvenc'); - const [bitrate, setBitrate] = React.useState((recorder.recording_video_bitrate || '25').replace(/M$/i, '')); + // Seed bitrate from the stored value; fall back to a mode-appropriate default + // (50 Mbps for growing XDCAM HD422, 25 Mbps for a GPU master). + const _seedBitrate = (recorder.recording_video_bitrate || (recorder.growing_enabled === true ? '50' : '25')).replace(/M$/i, ''); + const [bitrate, setBitrate] = React.useState(_seedBitrate); const [growing, setGrowing] = React.useState(recorder.growing_enabled === true); const [projectId, setProjectId] = React.useState(recorder.project_id || PROJECTS[0]?.id || ''); const [saving, setSaving] = React.useState(false); @@ -708,8 +711,10 @@ function RecorderConfigModal({ recorder, onClose, onSaved }) { - {/* Codec + bitrate only apply to Standard mode (growing is fixed XDCAM). */} - {!growing && ( + {/* Standard mode: GPU codec + bitrate. Growing mode: bitrate only + (codec is fixed to XDCAM HD422 MXF, but the target bitrate of the + growing essence is still operator-tunable). */} + {!growing ? (
@@ -729,6 +734,16 @@ function RecorderConfigModal({ recorder, onClose, onSaved }) {
)}
+ ) : ( +
+ + setBitrate(e.target.value)} /> +
+ Target bitrate of the growing MXF essence. Broadcast XDCAM HD422 is 50 Mbps; raise for higher quality. +
+
)}