5214d81264
* Query for installed codecs * Start modeling out codecs * Can now specify a codec and get the correct settings returned from the model * Return codecs in admin/serverconfig * Start handling transcoding errors and return messages to user * filter available codecs against a whitelist * Fix merge * Codecs are working * Switching between codecs work * Add apis for setting a custom video codec * Cleanup the logging of transcoder errors * Add v4l codec * Add fetching v4l * Add support for per-codec presets * Use updated nvenc encoding parameters * Update log message * Some more codec WIP * Turn off v4l. It is a mess. * Try to make the lowest latency level a bit more playable * Use a human redable display name in console messages * Turn on transcoder persistent connections * Add more codec-related user-facing error messages * Give the initial offline state transcoder an id * Force a minimum segment count of 3 * Disable qsv for now. set x264 specific params in VariantFlags * Close body in case * Ignore vbv underflow message, it is not actionable * Determine a dynamic gop value based on the length of segments * Add codec-specific tests * Cleanup * Ignore goconst lint warnings in codec file * Troubleshoot omx * Add more codec tests * Remove no longer accurate comment * Bundle admin from codec branch * Revert back to old setting * Cleanup list of codecs a bit * Remove old references to the encoder preset * Commit updated API documentation * Update admin bundle * Commit updated API documentation * Add codec setting to api spec * Commit updated API documentation Co-authored-by: Owncast <owncast@owncast.online>
26 lines
862 B
Go
26 lines
862 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{
|
|
1: {Level: 1, SecondsPerSegment: 1, SegmentCount: 2},
|
|
2: {Level: 2, SecondsPerSegment: 2, SegmentCount: 2},
|
|
3: {Level: 3, SecondsPerSegment: 2, SegmentCount: 3},
|
|
4: {Level: 4, SecondsPerSegment: 3, SegmentCount: 4}, // Default
|
|
5: {Level: 5, SecondsPerSegment: 4, SegmentCount: 5},
|
|
6: {Level: 6, SecondsPerSegment: 6, SegmentCount: 10},
|
|
}
|
|
}
|
|
|
|
// GetLatencyLevel will return the latency level at index.
|
|
func GetLatencyLevel(index int) LatencyLevel {
|
|
return GetLatencyConfigs()[index]
|
|
}
|