Sync bitrate preset between simple and advanced
This commit is contained in:
parent
17900f2b0a
commit
e002b586b1
1
DONE.md
1
DONE.md
|
|
@ -829,6 +829,7 @@ This file tracks completed features, fixes, and milestones.
|
|||
- ✅ 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"
|
||||
- ✅ Linked simple and advanced bitrate presets so they stay in sync
|
||||
- ✅ Stabilized video seeking and embedded rendering
|
||||
- ✅ Improved player window positioning
|
||||
- ✅ Fixed clear video functionality
|
||||
|
|
|
|||
1
TODO.md
1
TODO.md
|
|
@ -62,6 +62,7 @@ This file tracks upcoming features, improvements, and known issues.
|
|||
- 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
|
||||
- Simple/advanced bitrate presets synced
|
||||
|
||||
*Last Updated: 2025-12-20*
|
||||
|
||||
|
|
|
|||
36
main.go
36
main.go
|
|
@ -6117,10 +6117,15 @@ func buildConvertView(state *appState, src *videoSource) fyne.CanvasObject {
|
|||
}
|
||||
|
||||
var applyBitratePreset func(string)
|
||||
var setBitratePreset func(string)
|
||||
var syncingBitratePreset bool
|
||||
|
||||
bitratePresetSelect = widget.NewSelect(bitratePresetLabels, func(value string) {
|
||||
if applyBitratePreset != nil {
|
||||
applyBitratePreset(value)
|
||||
if syncingBitratePreset {
|
||||
return
|
||||
}
|
||||
if setBitratePreset != nil {
|
||||
setBitratePreset(value)
|
||||
}
|
||||
})
|
||||
state.convert.BitratePreset = normalizePresetLabel(state.convert.BitratePreset)
|
||||
|
|
@ -6131,9 +6136,11 @@ func buildConvertView(state *appState, src *videoSource) fyne.CanvasObject {
|
|||
|
||||
// Simple bitrate selector (shares presets)
|
||||
simpleBitrateSelect = widget.NewSelect(bitratePresetLabels, func(value string) {
|
||||
state.convert.BitratePreset = value
|
||||
if applyBitratePreset != nil {
|
||||
applyBitratePreset(value)
|
||||
if syncingBitratePreset {
|
||||
return
|
||||
}
|
||||
if setBitratePreset != nil {
|
||||
setBitratePreset(value)
|
||||
}
|
||||
})
|
||||
simpleBitrateSelect.SetSelected(state.convert.BitratePreset)
|
||||
|
|
@ -6430,6 +6437,25 @@ func buildConvertView(state *appState, src *videoSource) fyne.CanvasObject {
|
|||
}
|
||||
}
|
||||
|
||||
setBitratePreset = func(value string) {
|
||||
if syncingBitratePreset {
|
||||
return
|
||||
}
|
||||
syncingBitratePreset = true
|
||||
state.convert.BitratePreset = value
|
||||
if applyBitratePreset != nil {
|
||||
applyBitratePreset(value)
|
||||
}
|
||||
if bitratePresetSelect != nil {
|
||||
bitratePresetSelect.SetSelected(value)
|
||||
}
|
||||
if simpleBitrateSelect != nil {
|
||||
simpleBitrateSelect.SetSelected(value)
|
||||
}
|
||||
syncingBitratePreset = false
|
||||
}
|
||||
setBitratePreset(state.convert.BitratePreset)
|
||||
|
||||
updateEncodingControls = func() {
|
||||
mode := state.convert.BitrateMode
|
||||
isLossless := state.convert.Quality == "Lossless"
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user