mirror of
https://github.com/bluenviron/mediamtx
synced 2025-01-10 08:59:57 +00:00
41 lines
727 B
Go
41 lines
727 B
Go
package core
|
|
|
|
import (
|
|
"fmt"
|
|
"reflect"
|
|
"strings"
|
|
|
|
"github.com/aler9/gortsplib"
|
|
)
|
|
|
|
// source is an entity that can provide a stream.
|
|
// it can be:
|
|
// - a publisher
|
|
// - sourceStatic
|
|
// - sourceRedirect
|
|
type source interface {
|
|
apiSourceDescribe() interface{}
|
|
}
|
|
|
|
func sourceTrackNames(tracks gortsplib.Tracks) []string {
|
|
ret := make([]string, len(tracks))
|
|
for i, t := range tracks {
|
|
n := reflect.TypeOf(t).Elem().Name()
|
|
n = n[len("Track"):]
|
|
ret[i] = n
|
|
}
|
|
return ret
|
|
}
|
|
|
|
func sourceTrackInfo(tracks gortsplib.Tracks) string {
|
|
return fmt.Sprintf("%d %s (%s)",
|
|
len(tracks),
|
|
func() string {
|
|
if len(tracks) == 1 {
|
|
return "track"
|
|
}
|
|
return "tracks"
|
|
}(),
|
|
strings.Join(sourceTrackNames(tracks), ", "))
|
|
}
|