config

package
v1.7.1 Latest Latest
Warning

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

Go to latest
Published: May 9, 2023 License: Apache-2.0 Imports: 22 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type AudioConfig added in v1.5.6

type AudioConfig struct {
	AudioEnabled     bool
	AudioTranscoding bool
	AudioOutCodec    types.MimeType
	AudioBitrate     int32
	AudioFrequency   int32
}

type AzureConfig

type AzureConfig struct {
	AccountName   string `yaml:"account_name"` // (env AZURE_STORAGE_ACCOUNT)
	AccountKey    string `yaml:"account_key"`  // (env AZURE_STORAGE_KEY)
	ContainerName string `yaml:"container_name"`
}

func (*AzureConfig) ToAzureUpload added in v1.5.3

func (c *AzureConfig) ToAzureUpload() *livekit.AzureBlobUpload

type BaseConfig added in v1.5.3

type BaseConfig struct {
	NodeID string // do not supply - will be overwritten

	Redis                *redis.RedisConfig `yaml:"redis"`           // required
	ApiKey               string             `yaml:"api_key"`         // required (env LIVEKIT_API_KEY)
	ApiSecret            string             `yaml:"api_secret"`      // required (env LIVEKIT_API_SECRET)
	WsUrl                string             `yaml:"ws_url"`          // required (env LIVEKIT_WS_URL)
	TemplateBase         string             `yaml:"template_base"`   // custom template base url
	Insecure             bool               `yaml:"insecure"`        // allow chrome to connect to an insecure websocket
	LocalOutputDirectory string             `yaml:"local_directory"` // used for temporary storage before upload
	Logging              logger.Config      `yaml:"logging"`
	LogLevel             string             `yaml:"log_level"`      // TODO: deprecate
	ClusterID            string             `yaml:"cluster_id"`     // Which cluster this egress belongs to
	BackupStorage        string             `yaml:"backup_storage"` // Files will be moved here if the upload fails

	S3     *S3Config    `yaml:"s3"`
	Azure  *AzureConfig `yaml:"azure"`
	GCP    *GCPConfig   `yaml:"gcp"`
	AliOSS *S3Config    `yaml:"alioss"`

	SessionLimits `yaml:"session_limits"`
}

type CPUCostConfig added in v1.0.4

type CPUCostConfig struct {
	RoomCompositeCpuCost  float64 `yaml:"room_composite_cpu_cost"`
	TrackCompositeCpuCost float64 `yaml:"track_composite_cpu_cost"`
	TrackCpuCost          float64 `yaml:"track_cpu_cost"`
	WebCpuCost            float64 `yaml:"web_cpu_cost"`
}

type EncodedOutput added in v1.5.6

type EncodedOutput interface {
	GetFile() *livekit.EncodedFileOutput
	GetStream() *livekit.StreamOutput
	GetSegments() *livekit.SegmentedFileOutput
	GetFileOutputs() []*livekit.EncodedFileOutput
	GetStreamOutputs() []*livekit.StreamOutput
	GetSegmentOutputs() []*livekit.SegmentedFileOutput
}

type FileConfig added in v1.7.1

type FileConfig struct {
	FileInfo        *livekit.FileInfo
	LocalFilepath   string
	StorageFilepath string

	DisableManifest bool
	UploadConfig    interface{}
	// contains filtered or unexported fields
}

func (FileConfig) GetOutputType added in v1.7.1

func (o FileConfig) GetOutputType() types.OutputType

type GCPConfig

type GCPConfig struct {
	CredentialsJSON string `yaml:"credentials_json"` // (env GOOGLE_APPLICATION_CREDENTIALS)
	Bucket          string `yaml:"bucket"`
}

func (*GCPConfig) ToGCPUpload added in v1.5.3

func (c *GCPConfig) ToGCPUpload() *livekit.GCPUpload

type OutputConfig added in v1.5.6

type OutputConfig interface {
	GetOutputType() types.OutputType
}

type PipelineConfig added in v1.5.3

type PipelineConfig struct {
	BaseConfig `yaml:",inline"`

	HandlerID string `yaml:"handler_id"`
	TmpDir    string `yaml:"tmp_dir"`

	SourceConfig `yaml:"-"`
	AudioConfig  `yaml:"-"`
	VideoConfig  `yaml:"-"`

	Outputs     map[types.EgressType]OutputConfig `yaml:"-"`
	OutputCount int

	GstReady chan struct{}       `yaml:"-"`
	Info     *livekit.EgressInfo `yaml:"-"`
}

func GetValidatedPipelineConfig added in v1.5.3

func GetValidatedPipelineConfig(conf *ServiceConfig, req *rpc.StartEgressRequest) (*PipelineConfig, error)

func NewPipelineConfig added in v1.5.3

func NewPipelineConfig(confString string, req *rpc.StartEgressRequest) (*PipelineConfig, error)

func (*PipelineConfig) GetFileConfig added in v1.7.1

func (p *PipelineConfig) GetFileConfig() *FileConfig

func (*PipelineConfig) GetSegmentConfig added in v1.7.1

func (p *PipelineConfig) GetSegmentConfig() *SegmentConfig

func (*PipelineConfig) GetStreamConfig added in v1.7.1

func (p *PipelineConfig) GetStreamConfig() *StreamConfig

func (*PipelineConfig) GetWebsocketConfig added in v1.7.1

func (p *PipelineConfig) GetWebsocketConfig() *StreamConfig

func (*PipelineConfig) Update added in v1.5.3

func (p *PipelineConfig) Update(request *rpc.StartEgressRequest) error

func (*PipelineConfig) UpdateInfoFromSDK added in v1.5.6

func (p *PipelineConfig) UpdateInfoFromSDK(identifier string, replacements map[string]string) error

used for sdk input source

func (*PipelineConfig) ValidateUrl added in v1.5.6

func (p *PipelineConfig) ValidateUrl(rawUrl string, outputType types.OutputType) (string, error)

type S3Config

type S3Config struct {
	AccessKey      string `yaml:"access_key"` // (env AWS_ACCESS_KEY_ID)
	Secret         string `yaml:"secret"`     // (env AWS_SECRET_ACCESS_KEY)
	Region         string `yaml:"region"`     // (env AWS_DEFAULT_REGION)
	Endpoint       string `yaml:"endpoint"`
	Bucket         string `yaml:"bucket"`
	ForcePathStyle bool   `yaml:"force_path_style"`
}

func (*S3Config) ToAliOSSUpload added in v1.5.3

func (c *S3Config) ToAliOSSUpload() *livekit.AliOSSUpload

func (*S3Config) ToS3Upload added in v1.5.3

func (c *S3Config) ToS3Upload() *livekit.S3Upload

type SDKSourceParams added in v1.5.6

type SDKSourceParams struct {
	TrackID             string
	TrackSource         string
	TrackKind           string
	AudioTrackID        string
	VideoTrackID        string
	ParticipantIdentity string
	AudioSrc            *app.Source
	VideoSrc            *app.Source
	AudioInCodec        types.MimeType
	VideoInCodec        types.MimeType
	AudioCodecParams    webrtc.RTPCodecParameters
	VideoCodecParams    webrtc.RTPCodecParameters
}

type SegmentConfig added in v1.7.1

type SegmentConfig struct {
	SegmentsInfo     *livekit.SegmentsInfo
	LocalDir         string
	StorageDir       string
	PlaylistFilename string
	SegmentPrefix    string
	SegmentSuffix    livekit.SegmentedFileSuffix
	SegmentDuration  int

	DisableManifest bool
	UploadConfig    interface{}
	// contains filtered or unexported fields
}

func (SegmentConfig) GetOutputType added in v1.7.1

func (o SegmentConfig) GetOutputType() types.OutputType

type ServiceConfig added in v1.5.3

type ServiceConfig struct {
	BaseConfig `yaml:",inline"`

	HealthPort       int `yaml:"health_port"`
	TemplatePort     int `yaml:"template_port"`
	PrometheusPort   int `yaml:"prometheus_port"`
	DebugHandlerPort int `yaml:"debug_handler_port"` // Port used to launch the egress debug handler. 0 means debug handler disabled.

	CPUCostConfig `yaml:"cpu_cost"` // CPU costs for various egress types
}

func NewServiceConfig added in v1.5.3

func NewServiceConfig(confString string) (*ServiceConfig, error)

type SessionLimits added in v1.2.0

type SessionLimits struct {
	FileOutputMaxDuration    time.Duration `yaml:"file_output_max_duration"`
	StreamOutputMaxDuration  time.Duration `yaml:"stream_output_max_duration"`
	SegmentOutputMaxDuration time.Duration `yaml:"segment_output_max_duration"`
}

type SourceConfig added in v1.5.6

type SourceConfig struct {
	SourceType types.SourceType
	Latency    uint64
	WebSourceParams
	SDKSourceParams
}

type StreamConfig added in v1.7.1

type StreamConfig struct {
	Urls       []string
	StreamInfo map[string]*livekit.StreamInfo
	// contains filtered or unexported fields
}

func (StreamConfig) GetOutputType added in v1.7.1

func (o StreamConfig) GetOutputType() types.OutputType

type VideoConfig added in v1.5.6

type VideoConfig struct {
	VideoEnabled     bool
	VideoTranscoding bool
	VideoOutCodec    types.MimeType
	VideoProfile     types.Profile
	Width            int32
	Height           int32
	Depth            int32
	Framerate        int32
	VideoBitrate     int32
	KeyFrameInterval float64
}

type WebSourceParams added in v1.5.6

type WebSourceParams struct {
	Display string
	Layout  string
	Token   string
	BaseUrl string
	WebUrl  string
}

Jump to

Keyboard shortcuts

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