package config import "cmp" // Destination holds the configuration for a destination. type Destination struct { Name string `yaml:"name"` URL string `yaml:"url"` } // LogFile holds the configuration for the log file. type LogFile struct { Enabled bool `yaml:"enabled"` Path string `yaml:"path,omitempty"` defaultPath string } // GetPath returns the path to the log file. If the path is not set, it // returns the default log path. func (l LogFile) GetPath() string { return cmp.Or(l.Path, l.defaultPath) } // NetAddr holds an IP and/or port. type NetAddr struct { IP string `yaml:"ip,omitempty"` Port int `yaml:"port,omitempty"` } // RTMPSource holds the configuration for the RTMP source. type RTMPSource struct { Enabled bool `yaml:"enabled"` NetAddr `yaml:",inline"` } // TLS holds the TLS configuration. type TLS struct { CertPath string `yaml:"cert,omitempty"` KeyPath string `yaml:"key,omitempty"` } // MediaServerSource holds the configuration for the media server source. type MediaServerSource struct { StreamKey string `yaml:"streamKey,omitempty"` Host string `yaml:"host,omitempty"` TLS *TLS `yaml:"tls,omitempty"` RTMP RTMPSource `yaml:"rtmp"` RTMPS RTMPSource `yaml:"rtmps"` } // Sources holds the configuration for the sources. type Sources struct { MediaServer MediaServerSource `yaml:"mediaServer"` } // Config holds the configuration for the application. type Config struct { LogFile LogFile `yaml:"logfile"` Sources Sources `yaml:"sources"` Destinations []Destination `yaml:"destinations"` }