owncast/models/latencyLevels.go
Gabe Kangas 2fba39b7c7 Increase the number of segments in HLS playlist.
In testing this is not increasing latency and should improve stability
and reliability for some people, since there will be a larger back
buffer to work from.
2021-11-23 21:54:51 -08:00

25 lines
912 B
Go

package models
// LatencyLevel is a representation of HLS configuration values.
type LatencyLevel struct {
Level int `json:"level"`
SecondsPerSegment int `json:"-"`
SegmentCount int `json:"-"`
}
// GetLatencyConfigs will return the available latency level options.
func GetLatencyConfigs() map[int]LatencyLevel {
return map[int]LatencyLevel{
0: {Level: 0, SecondsPerSegment: 1, SegmentCount: 25}, // Approx 5 seconds
1: {Level: 1, SecondsPerSegment: 2, SegmentCount: 15}, // Approx 8-9 seconds
2: {Level: 2, SecondsPerSegment: 3, SegmentCount: 10}, // Default Approx 10 seconds
3: {Level: 3, SecondsPerSegment: 4, SegmentCount: 8}, // Approx 15 seconds
4: {Level: 4, SecondsPerSegment: 5, SegmentCount: 5}, // Approx 18 seconds
}
}
// GetLatencyLevel will return the latency level at index.
func GetLatencyLevel(index int) LatencyLevel {
return GetLatencyConfigs()[index]
}