config

package
v1.0.5 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Feb 25, 2026 License: MIT Imports: 8 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type Config

type Config struct {
	PlaylistURL                          string
	DBPath                               string
	LogDir                               string
	HTTPAddr                             string
	LegacyHTTPAddr                       string
	UPnPEnabled                          bool
	UPnPAddr                             string
	UPnPNotifyInterval                   time.Duration
	UPnPMaxAge                           time.Duration
	UPnPContentDirectoryUpdateIDCacheTTL time.Duration
	TunerCount                           int
	FriendlyName                         string
	DeviceID                             string
	DeviceAuth                           string
	RefreshSchedule                      string
	ReconcileDynamicRulePaged            bool
	FFmpegPath                           string
	FFprobePath                          string
	StreamMode                           string
	StartupTimeout                       time.Duration
	StartupRandomAccessRecoveryOnly      bool
	MinProbeBytes                        int
	MaxFailovers                         int
	FailoverTotalTimeout                 time.Duration
	UpstreamOverlimitCooldown            time.Duration
	FFmpegReconnectEnabled               bool
	FFmpegReconnectDelayMax              time.Duration
	FFmpegReconnectMaxRetries            int
	FFmpegReconnectHTTPErrors            string
	FFmpegStartupProbeSize               int
	FFmpegStartupAnalyzeDuration         time.Duration
	FFmpegInputBufferSize                int
	FFmpegDiscardCorrupt                 bool
	FFmpegCopyRegenerateTimestamps       bool
	ProducerReadRate                     float64
	ProducerReadRateCatchup              float64
	ProducerInitialBurst                 int
	BufferChunkBytes                     int
	BufferFlushInterval                  time.Duration
	BufferTSAlign188                     bool
	StallDetect                          time.Duration
	StallHardDeadline                    time.Duration
	StallPolicy                          string
	StallMaxFailovers                    int
	CycleFailureMinHealth                time.Duration
	RecoveryFillerEnabled                bool
	RecoveryFillerMode                   string
	RecoveryFillerInterval               time.Duration
	RecoveryFillerText                   string
	RecoveryFillerEnableAudio            bool
	SubscriberJoinLag                    int
	SubscriberSlowPolicy                 string
	SubscriberMaxBlocked                 time.Duration
	SessionIdleTimeout                   time.Duration
	SessionDrainTimeout                  time.Duration
	SessionMaxSubscribers                int
	SessionHistoryLimit                  int
	SessionSourceHistoryLimit            int
	SessionSubscriberHistoryLimit        int
	SourceHealthDrainTimeout             time.Duration
	PreemptSettleDelay                   time.Duration
	AutoPrioritizeProbeTuneDelay         time.Duration
	AutoPrioritizeWorkers                string
	ProbeInterval                        time.Duration
	ProbeTimeout                         time.Duration
	AdminBasicAuth                       string
	AdminJSONBodyLimitBytes              int64
	DVRLineupReloadTimeout               time.Duration
	RequestTimeout                       time.Duration
	RateLimitRPS                         float64
	RateLimitBurst                       int
	RateLimitMaxClients                  int
	RateLimitTrustedProxies              []string
	TuneBackoffMaxTunes                  int
	TuneBackoffInterval                  time.Duration
	TuneBackoffCooldown                  time.Duration
	EnableMetrics                        bool
	HTTPRequestLogEnabled                bool
	LogLevel                             string
	CatalogSearchMaxTerms                int
	CatalogSearchMaxDisjuncts            int
	CatalogSearchMaxTermRunes            int
}

Config carries runtime settings from CLI flags and environment variables.

func Load

func Load(args []string) (Config, error)

func (Config) Redacted

func (c Config) Redacted() RedactedConfig

type RedactedConfig

type RedactedConfig struct {
	PlaylistURLConfigured                bool     `json:"playlist_url_configured"`
	DBPath                               string   `json:"db_path"`
	LogDir                               string   `json:"log_dir"`
	HTTPAddr                             string   `json:"http_addr"`
	LegacyHTTPAddr                       string   `json:"legacy_http_addr,omitempty"`
	UPnPEnabled                          bool     `json:"upnp_enabled"`
	UPnPAddr                             string   `json:"upnp_addr"`
	UPnPNotifyInterval                   string   `json:"upnp_notify_interval"`
	UPnPMaxAge                           string   `json:"upnp_max_age"`
	UPnPContentDirectoryUpdateIDCacheTTL string   `json:"upnp_content_directory_update_id_cache_ttl"`
	TunerCount                           int      `json:"tuner_count"`
	FriendlyName                         string   `json:"friendly_name"`
	DeviceID                             string   `json:"device_id"`
	DeviceAuthConfigured                 bool     `json:"device_auth_configured"`
	RefreshSchedule                      string   `json:"refresh_schedule,omitempty"`
	ReconcileDynamicRulePaged            bool     `json:"reconcile_dynamic_rule_paged"`
	FFmpegPath                           string   `json:"ffmpeg_path"`
	FFprobePath                          string   `json:"ffprobe_path"`
	StreamMode                           string   `json:"stream_mode"`
	StartupTimeout                       string   `json:"startup_timeout"`
	StartupRandomAccessRecoveryOnly      bool     `json:"startup_random_access_recovery_only"`
	MinProbeBytes                        int      `json:"min_probe_bytes"`
	MaxFailovers                         int      `json:"max_failovers"`
	FailoverTotalTimeout                 string   `json:"failover_total_timeout"`
	UpstreamOverlimitCooldown            string   `json:"upstream_overlimit_cooldown"`
	FFmpegReconnectEnabled               bool     `json:"ffmpeg_reconnect_enabled"`
	FFmpegReconnectDelayMax              string   `json:"ffmpeg_reconnect_delay_max"`
	FFmpegReconnectMaxRetries            int      `json:"ffmpeg_reconnect_max_retries"`
	FFmpegReconnectHTTPErrors            string   `json:"ffmpeg_reconnect_http_errors"`
	FFmpegStartupProbeSize               int      `json:"ffmpeg_startup_probesize"`
	FFmpegStartupAnalyzeDuration         string   `json:"ffmpeg_startup_analyzeduration"`
	FFmpegInputBufferSize                int      `json:"ffmpeg_input_buffer_size"`
	FFmpegDiscardCorrupt                 bool     `json:"ffmpeg_discard_corrupt"`
	FFmpegCopyRegenerateTimestamps       bool     `json:"ffmpeg_copy_regenerate_timestamps"`
	ProducerReadRate                     string   `json:"producer_readrate"`
	ProducerReadRateCatchup              string   `json:"producer_readrate_catchup"`
	ProducerInitialBurst                 int      `json:"producer_initial_burst"`
	BufferChunkBytes                     int      `json:"buffer_chunk_bytes"`
	BufferFlushInterval                  string   `json:"buffer_flush_interval"`
	BufferTSAlign188                     bool     `json:"buffer_ts_align_188"`
	StallDetect                          string   `json:"stall_detect"`
	StallHardDeadline                    string   `json:"stall_hard_deadline"`
	StallPolicy                          string   `json:"stall_policy"`
	StallMaxFailovers                    int      `json:"stall_max_failovers"`
	CycleFailureMinHealth                string   `json:"cycle_failure_min_health"`
	RecoveryFillerEnabled                bool     `json:"recovery_filler_enabled"`
	RecoveryFillerMode                   string   `json:"recovery_filler_mode"`
	RecoveryFillerInterval               string   `json:"recovery_filler_interval"`
	RecoveryFillerText                   string   `json:"recovery_filler_text"`
	RecoveryFillerEnableAudio            bool     `json:"recovery_filler_enable_audio"`
	SubscriberJoinLag                    int      `json:"subscriber_join_lag"`
	SubscriberSlowPolicy                 string   `json:"subscriber_slow_policy"`
	SubscriberMaxBlocked                 string   `json:"subscriber_max_blocked"`
	SessionIdleTimeout                   string   `json:"session_idle_timeout"`
	SessionDrainTimeout                  string   `json:"session_drain_timeout"`
	SessionMaxSubscribers                int      `json:"session_max_subscribers"`
	SessionHistoryLimit                  int      `json:"session_history_limit"`
	SessionSourceHistoryLimit            int      `json:"session_source_history_limit"`
	SessionSubscriberHistoryLimit        int      `json:"session_subscriber_history_limit"`
	SourceHealthDrainTimeout             string   `json:"source_health_drain_timeout"`
	PreemptSettleDelay                   string   `json:"preempt_settle_delay"`
	AutoPrioritizeProbeTuneDelay         string   `json:"auto_prioritize_probe_tune_delay"`
	AutoPrioritizeWorkers                string   `json:"auto_prioritize_workers"`
	ProbeInterval                        string   `json:"probe_interval"`
	ProbeTimeout                         string   `json:"probe_timeout"`
	AdminAuthConfigured                  bool     `json:"admin_auth_configured"`
	AdminJSONBodyLimitBytes              int64    `json:"admin_json_body_limit_bytes"`
	DVRLineupReloadTimeout               string   `json:"dvr_lineup_reload_timeout"`
	RequestTimeout                       string   `json:"request_timeout"`
	RateLimitRPS                         string   `json:"rate_limit_rps"`
	RateLimitBurst                       int      `json:"rate_limit_burst"`
	RateLimitMaxClients                  int      `json:"rate_limit_max_clients"`
	RateLimitTrustedProxies              []string `json:"rate_limit_trusted_proxies,omitempty"`
	TuneBackoffMaxTunes                  int      `json:"tune_backoff_max_tunes"`
	TuneBackoffInterval                  string   `json:"tune_backoff_interval"`
	TuneBackoffCooldown                  string   `json:"tune_backoff_cooldown"`
	EnableMetrics                        bool     `json:"enable_metrics"`
	HTTPRequestLogEnabled                bool     `json:"http_request_log_enabled"`
	LogLevel                             string   `json:"log_level"`
	CatalogSearchMaxTerms                int      `json:"catalog_search_max_terms"`
	CatalogSearchMaxDisjuncts            int      `json:"catalog_search_max_disjuncts"`
	CatalogSearchMaxTermRunes            int      `json:"catalog_search_max_term_runes"`
}

RedactedConfig is safe for logs and startup output.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL