Skip to content

Commit fddb6b9

Browse files
committed
feat: add configurable max framerate for video encoding
- Add MaxFramerate to Config and Setting models - Implement dynamic framerate capping in CreateFile logic (default: 60 FPS) - Update UpdateSettingsController and configdb to handle the new setting
1 parent feb5ad8 commit fddb6b9

File tree

5 files changed

+6
-2
lines changed

5 files changed

+6
-2
lines changed

config/config.go

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -35,6 +35,7 @@ type Config struct {
3535

3636
MaxItemsMultiDelete int64
3737
MaxRunningEncodes int64
38+
MaxFramerate int64
3839

3940
MaxUploadFilesize int64
4041
MaxUploadChuncksize int64

configdb/configdb.go

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -37,6 +37,7 @@ func Setup() {
3737

3838
config.ENV.MaxItemsMultiDelete = getEnvDb_int64(&setting.MaxItemsMultiDelete, 1000)
3939
config.ENV.MaxRunningEncodes = getEnvDb_int64(&setting.MaxRunningEncodes, 1)
40+
config.ENV.MaxFramerate = getEnvDb_int64(&setting.MaxFramerate, 60)
4041

4142
config.ENV.MaxUploadFilesize = getEnvDb_int64(&setting.MaxUploadFilesize, 5*1024*1024*1024) // 5gb
4243
config.ENV.MaxUploadChuncksize = getEnvDb_int64(&setting.MaxUploadChuncksize, 20*1024*1024) // 20mb

controllers/UpdateSettingsController.go

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -40,6 +40,7 @@ func UpdateSettings(c echo.Context) error {
4040
setting.CloudflareEnabled = validation.CloudflareEnabled
4141
setting.MaxItemsMultiDelete = validation.MaxItemsMultiDelete
4242
setting.MaxRunningEncodes = validation.MaxRunningEncodes
43+
setting.MaxFramerate = validation.MaxFramerate
4344
setting.MaxUploadFilesize = validation.MaxUploadFilesize
4445
setting.MaxUploadChuncksize = validation.MaxUploadChuncksize
4546
setting.MaxUploadSessions = validation.MaxUploadSessions

logic/CreateFile.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -298,8 +298,8 @@ func CreateFile(fromFile *string, toFolder uint, fileName string, fileId string,
298298
qualityPath := fmt.Sprintf("%s/%s/%s", config.ENV.FolderVideoQualitysPriv, fileId, qualityOpt.FolderName)
299299
// switch framerate if too high
300300
var qualityFrameRate float64 = 0
301-
if avgFramerate > 30 {
302-
qualityFrameRate = 30
301+
if avgFramerate > float64(config.ENV.MaxFramerate) {
302+
qualityFrameRate = float64(config.ENV.MaxFramerate)
303303
}
304304

305305
if float64(videoWidth/videoHeight) > float64(16/9) {

models/Setting.go

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,7 @@ type Setting struct {
2626

2727
MaxItemsMultiDelete string `validate:"required,number,min=1"`
2828
MaxRunningEncodes string `validate:"required,number,min=1"`
29+
MaxFramerate string `validate:"required,number,min=1"`
2930

3031
MaxUploadFilesize string `validate:"required,number,min=1"`
3132
MaxUploadChuncksize string `validate:"required,number,min=1"`

0 commit comments

Comments
 (0)