package main import ( "mxl-player/internal/playback" "strings" "time" ) const ( defaultInitialRetryDelay = 500 * time.Millisecond defaultMaxRetryDelay = 10 * time.Second ) func resolveDomain(shared, override string) string { if override != "" { return override } return shared } func normalizeFeedInput(domain, uuid string) (string, string) { return strings.TrimSpace(domain), strings.TrimSpace(uuid) } func resolveRetryPolicy( cli playback.RetryPolicy, cliMaxAttemptsSet bool, playlist playback.Playlist, ) playback.RetryPolicy { if playlist.Retry == nil { return cli } resolved := *playlist.Retry if cliMaxAttemptsSet { resolved.MaxAttempts = cli.MaxAttempts } return resolved } func (a appArgs) playbackConfig() playback.SessionConfig { return playback.SessionConfig{ Video: playback.FeedConfig{ Domain: resolveDomain(a.Domain, a.VideoDomain), UUID: a.VideoFlowId, Active: a.VideoFlowId != "", }, Audio: playback.FeedConfig{ Domain: resolveDomain(a.Domain, a.AudioDomain), UUID: a.AudioFlowId, Active: a.AudioFlowId != "", }, SyncRequested: a.SyncRequested, Retry: playback.RetryPolicy{ MaxAttempts: a.MaxAttempts, InitialDelay: defaultInitialRetryDelay, MaxDelay: defaultMaxRetryDelay, }, } }