Archived
2
0

add WS handlers

This commit is contained in:
m1k1o
2020-09-27 00:10:34 +02:00
parent b2afd1af6d
commit ea80f07bcd
9 changed files with 149 additions and 32 deletions

View File

@ -13,18 +13,22 @@ type BroadcastManager struct {
pipeline *gst.Pipeline
remote *config.Remote
config *config.Broadcast
enabled bool
url string
}
func New(remote *config.Remote, config *config.Broadcast) *BroadcastManager {
return &BroadcastManager{
logger: log.With().Str("module", "remote").Logger(),
remote: remote,
config: config,
logger: log.With().Str("module", "remote").Logger(),
remote: remote,
config: config,
enabled: false,
url: "",
}
}
func (manager *BroadcastManager) Start() {
if !manager.config.Enabled {
if !manager.enabled || manager.IsActive() {
return
}
@ -32,7 +36,7 @@ func (manager *BroadcastManager) Start() {
manager.pipeline, err = gst.CreateRTMPPipeline(
manager.remote.Device,
manager.remote.Display,
manager.config.RTMP,
manager.url,
)
manager.logger.Info().
@ -50,10 +54,29 @@ func (manager *BroadcastManager) Start() {
}
func (manager *BroadcastManager) Stop() {
if manager.pipeline == nil {
if !manager.IsActive() {
return
}
manager.pipeline.Stop()
manager.pipeline = nil
}
func (manager *BroadcastManager) IsActive() bool {
return manager.pipeline != nil
}
func (manager *BroadcastManager) Create(url string) {
manager.url = url
manager.enabled = true
manager.Start()
}
func (manager *BroadcastManager) Destroy() {
manager.Stop()
manager.enabled = false
}
func (manager *BroadcastManager) GetUrl() string {
return manager.url
}