Files
plugin-edge/main.go
2023-01-16 09:25:13 +08:00

44 lines
896 B
Go

package edge
import (
"go.uber.org/zap"
. "m7s.live/engine/v4"
"m7s.live/engine/v4/config"
"m7s.live/plugin/hdl/v4"
"m7s.live/plugin/rtmp/v4"
"m7s.live/plugin/rtsp/v4"
)
type EdgeConfig struct {
Origin string //源服务器地址
config.Pull
}
func (p *EdgeConfig) OnEvent(event any) {
switch v := event.(type) {
case FirstConfig:
if len(p.Origin) < 4 {
plugin.Warn("origin config error plugin disabled")
plugin.RawConfig["enable"] = false
}
case *Stream:
var puller IPuller
switch p.Origin[:4] {
case "http":
puller = hdl.NewHDLPuller()
case "rtmp":
puller = new(rtmp.RTMPPuller)
case "rtsp":
puller = new(rtsp.RTSPPuller)
default:
plugin.Panic("origin config not support")
}
err := plugin.Pull(v.Path, p.Origin+v.Path, puller, 0)
if err != nil {
plugin.Error("pull", zap.Error(err))
}
}
}
var plugin = InstallPlugin(new(EdgeConfig))