Files
plugin-edge/main.go
2022-10-10 21:52:17 +08:00

45 lines
924 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
puller IPuller
}
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
} else {
switch p.Origin[:4] {
case "http":
p.puller = new(hdl.HDLPuller)
case "rtmp":
p.puller = new(rtmp.RTMPPuller)
case "rtsp":
p.puller = new(rtsp.RTSPPuller)
default:
plugin.Panic("origin config not support")
}
}
case *Stream:
err := plugin.Pull(v.Path, p.Origin+v.Path, p.puller, false)
if err != nil {
plugin.Error("pull", zap.Error(err))
}
}
}
var plugin = InstallPlugin(new(EdgeConfig))