mirror of
https://github.com/AlexxIT/go2rtc.git
synced 2025-10-17 05:41:21 +08:00
35 lines
617 B
Go
35 lines
617 B
Go
package streams
|
|
|
|
import (
|
|
"net/url"
|
|
|
|
"github.com/AlexxIT/go2rtc/pkg/preload"
|
|
)
|
|
|
|
var preloads = map[string]*preload.Preload{}
|
|
|
|
func (s *Stream) Preload(name string, query url.Values) error {
|
|
cons := preload.NewPreload(name, query)
|
|
preloads[name] = cons
|
|
|
|
if err := s.AddConsumer(cons); err != nil {
|
|
return err
|
|
}
|
|
|
|
return nil
|
|
}
|
|
|
|
func Preload(src string, rawQuery string) {
|
|
// skip if exists
|
|
if _, ok := preloads[src]; ok {
|
|
return
|
|
}
|
|
|
|
if stream := Get(src); stream != nil {
|
|
query := ParseQuery(rawQuery)
|
|
if err := stream.Preload(src, query); err != nil {
|
|
log.Error().Err(err).Caller().Send()
|
|
}
|
|
}
|
|
}
|