limit MPV in-memory cache size and make it configurable
This commit is contained in:
+3
-1
@@ -80,7 +80,9 @@ func (a *App) readConfig() {
|
||||
|
||||
func (a *App) initMPV() error {
|
||||
p := player.NewWithClientName(AppName)
|
||||
if err := p.Init(a.Config.LocalPlayback.AudioExclusive); err != nil {
|
||||
c := a.Config.LocalPlayback
|
||||
c.InMemoryCacheSizeMB = clamp(c.InMemoryCacheSizeMB, 10, 500)
|
||||
if err := p.Init(c.AudioExclusive, c.InMemoryCacheSizeMB); err != nil {
|
||||
return fmt.Errorf("failed to initialize mpv player: %s", err.Error())
|
||||
}
|
||||
a.Player = p
|
||||
|
||||
+6
-4
@@ -48,8 +48,9 @@ type PlaylistPageConfig struct {
|
||||
}
|
||||
|
||||
type LocalPlaybackConfig struct {
|
||||
AudioExclusive bool
|
||||
Volume int
|
||||
AudioExclusive bool
|
||||
InMemoryCacheSizeMB int
|
||||
Volume int
|
||||
}
|
||||
|
||||
type ScrobbleConfig struct {
|
||||
@@ -98,8 +99,9 @@ func DefaultConfig() *Config {
|
||||
TracklistColumns: []string{"Artist", "Album", "Time", "Plays"},
|
||||
},
|
||||
LocalPlayback: LocalPlaybackConfig{
|
||||
AudioExclusive: false,
|
||||
Volume: 100,
|
||||
AudioExclusive: false,
|
||||
InMemoryCacheSizeMB: 30,
|
||||
Volume: 100,
|
||||
},
|
||||
Scrobbling: ScrobbleConfig{
|
||||
Enabled: true,
|
||||
|
||||
+4
-1
@@ -77,7 +77,7 @@ func NewWithClientName(c string) *Player {
|
||||
|
||||
// Initializes the Player and makes it ready for playback.
|
||||
// Most Player functions will return ErrUnitialized if called before Init.
|
||||
func (p *Player) Init(audioExclusive bool) error {
|
||||
func (p *Player) Init(audioExclusive bool, maxCacheMB int) error {
|
||||
if !p.initialized {
|
||||
m, err := CreateMPV()
|
||||
if err != nil {
|
||||
@@ -91,6 +91,9 @@ func (p *Player) Init(audioExclusive bool) error {
|
||||
m.SetOptionString("force-seekable", "yes")
|
||||
m.SetOptionString("terminal", "no")
|
||||
|
||||
// limit in-memory cache size
|
||||
m.SetOptionString("demuxer-max-bytes", fmt.Sprintf("%dMiB", maxCacheMB))
|
||||
|
||||
if p.vol < 0 {
|
||||
p.vol = 100
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user