Sync bitrate preset between simple and advanced
This commit is contained in:
parent
24724c47cc
commit
f5b4842210
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 CRF preset dropdown with Manual option
|
||||||
- ✅ Added 0.5/1.0 Mbps bitrate presets and simplified preset names
|
- ✅ Added 0.5/1.0 Mbps bitrate presets and simplified preset names
|
||||||
- ✅ Default bitrate preset normalized to 2.5 Mbps to avoid "select one"
|
- ✅ 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
|
- ✅ Stabilized video seeking and embedded rendering
|
||||||
- ✅ Improved player window positioning
|
- ✅ Improved player window positioning
|
||||||
- ✅ Fixed clear video functionality
|
- ✅ 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
|
- CRF preset dropdown added with Manual option
|
||||||
- Bitrate presets expanded to include 0.5/1.0 Mbps and renamed for clarity
|
- 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
|
- Default bitrate preset normalized to 2.5 Mbps to prevent empty select
|
||||||
|
- Simple/advanced bitrate presets synced
|
||||||
|
|
||||||
*Last Updated: 2025-12-20*
|
*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 applyBitratePreset func(string)
|
||||||
|
var setBitratePreset func(string)
|
||||||
|
var syncingBitratePreset bool
|
||||||
|
|
||||||
bitratePresetSelect = widget.NewSelect(bitratePresetLabels, func(value string) {
|
bitratePresetSelect = widget.NewSelect(bitratePresetLabels, func(value string) {
|
||||||
if applyBitratePreset != nil {
|
if syncingBitratePreset {
|
||||||
applyBitratePreset(value)
|
return
|
||||||
|
}
|
||||||
|
if setBitratePreset != nil {
|
||||||
|
setBitratePreset(value)
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
state.convert.BitratePreset = normalizePresetLabel(state.convert.BitratePreset)
|
state.convert.BitratePreset = normalizePresetLabel(state.convert.BitratePreset)
|
||||||
|
|
@ -6131,9 +6136,11 @@ func buildConvertView(state *appState, src *videoSource) fyne.CanvasObject {
|
||||||
|
|
||||||
// Simple bitrate selector (shares presets)
|
// Simple bitrate selector (shares presets)
|
||||||
simpleBitrateSelect = widget.NewSelect(bitratePresetLabels, func(value string) {
|
simpleBitrateSelect = widget.NewSelect(bitratePresetLabels, func(value string) {
|
||||||
state.convert.BitratePreset = value
|
if syncingBitratePreset {
|
||||||
if applyBitratePreset != nil {
|
return
|
||||||
applyBitratePreset(value)
|
}
|
||||||
|
if setBitratePreset != nil {
|
||||||
|
setBitratePreset(value)
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
simpleBitrateSelect.SetSelected(state.convert.BitratePreset)
|
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() {
|
updateEncodingControls = func() {
|
||||||
mode := state.convert.BitrateMode
|
mode := state.convert.BitrateMode
|
||||||
isLossless := state.convert.Quality == "Lossless"
|
isLossless := state.convert.Quality == "Lossless"
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue
Block a user