From 17900f2b0ae9a3978fa0ce961e7fbe1a27e6d2db Mon Sep 17 00:00:00 2001 From: Stu Leak Date: Sat, 20 Dec 2025 16:07:13 -0500 Subject: [PATCH] Normalize bitrate preset default to 2.5 Mbps --- DONE.md | 1 + TODO.md | 1 + main.go | 28 +++++++++++++++++++++++++++- 3 files changed, 29 insertions(+), 1 deletion(-) diff --git a/DONE.md b/DONE.md index 66bea3d..a38b96f 100644 --- a/DONE.md +++ b/DONE.md @@ -828,6 +828,7 @@ This file tracks completed features, fixes, and milestones. - ✅ Removed CRF visibility toggle from quality updates to prevent CBR/VBR bleed-through - ✅ Added CRF preset dropdown with Manual option - ✅ Added 0.5/1.0 Mbps bitrate presets and simplified preset names +- ✅ Default bitrate preset normalized to 2.5 Mbps to avoid "select one" - ✅ Stabilized video seeking and embedded rendering - ✅ Improved player window positioning - ✅ Fixed clear video functionality diff --git a/TODO.md b/TODO.md index 8f6539f..76cdd7d 100644 --- a/TODO.md +++ b/TODO.md @@ -61,6 +61,7 @@ This file tracks upcoming features, improvements, and known issues. - CRF visibility no longer overridden by quality updates - CRF preset dropdown added with Manual option - Bitrate presets expanded to include 0.5/1.0 Mbps and renamed for clarity + - Default bitrate preset normalized to 2.5 Mbps to prevent empty select *Last Updated: 2025-12-20* diff --git a/main.go b/main.go index 414154c..52d519c 100644 --- a/main.go +++ b/main.go @@ -6091,6 +6091,31 @@ func buildConvertView(state *appState, src *videoSource) fyne.CanvasObject { bitratePresetLabels = append(bitratePresetLabels, p.Label) } + normalizePresetLabel := func(label string) string { + switch label { + case "2.5 Mbps - Medium Quality": + return "2.5 Mbps - Medium" + case "2.0 Mbps - Medium-Low Quality": + return "2.0 Mbps - Medium-Low" + case "1.5 Mbps - Low Quality": + return "1.5 Mbps - Low" + case "4.0 Mbps - Good Quality": + return "4.0 Mbps - Good" + case "6.0 Mbps - High Quality": + return "6.0 Mbps - High" + case "8.0 Mbps - Very High Quality": + return "8.0 Mbps - Very High" + case "0.5 Mbps - Ultra Low": + return label + case "1.0 Mbps - Very Low": + return label + case "Manual": + return "Manual" + default: + return label + } + } + var applyBitratePreset func(string) bitratePresetSelect = widget.NewSelect(bitratePresetLabels, func(value string) { @@ -6098,8 +6123,9 @@ func buildConvertView(state *appState, src *videoSource) fyne.CanvasObject { applyBitratePreset(value) } }) + state.convert.BitratePreset = normalizePresetLabel(state.convert.BitratePreset) if state.convert.BitratePreset == "" || bitratePresetLookup[state.convert.BitratePreset].Label == "" { - state.convert.BitratePreset = "2.5 Mbps - Medium Quality" + state.convert.BitratePreset = "2.5 Mbps - Medium" } bitratePresetSelect.SetSelected(state.convert.BitratePreset)