mirror of
https://github.com/owncast/owncast.git
synced 2024-11-25 06:12:23 +03:00
Stop rtmp from reaching back into core (#290)
* Stop rtmp from reaching back into core. * Un-export since these functions no longer need to be public
This commit is contained in:
parent
72918a62d8
commit
3963568951
6 changed files with 22 additions and 14 deletions
|
@ -11,6 +11,7 @@ import (
|
|||
"github.com/owncast/owncast/config"
|
||||
"github.com/owncast/owncast/core/chat"
|
||||
"github.com/owncast/owncast/core/ffmpeg"
|
||||
"github.com/owncast/owncast/core/rtmp"
|
||||
"github.com/owncast/owncast/models"
|
||||
"github.com/owncast/owncast/utils"
|
||||
"github.com/owncast/owncast/yp"
|
||||
|
@ -61,6 +62,9 @@ func Start() error {
|
|||
|
||||
chat.Setup(ChatListenerImpl{})
|
||||
|
||||
// start the rtmp server
|
||||
go rtmp.Start(setStreamAsConnected, setBroadcaster)
|
||||
|
||||
return nil
|
||||
}
|
||||
|
||||
|
|
|
@ -4,7 +4,6 @@ import (
|
|||
"time"
|
||||
|
||||
"github.com/nareix/joy5/format/flv/flvio"
|
||||
"github.com/owncast/owncast/core"
|
||||
"github.com/owncast/owncast/models"
|
||||
log "github.com/sirupsen/logrus"
|
||||
)
|
||||
|
@ -31,5 +30,5 @@ func setCurrentBroadcasterInfo(t flvio.Tag, remoteAddr string) {
|
|||
},
|
||||
}
|
||||
|
||||
core.SetBroadcaster(broadcaster)
|
||||
_setBroadcaster(broadcaster)
|
||||
}
|
||||
|
|
|
@ -16,7 +16,7 @@ import (
|
|||
|
||||
"github.com/nareix/joy5/format/rtmp"
|
||||
"github.com/owncast/owncast/config"
|
||||
"github.com/owncast/owncast/core"
|
||||
"github.com/owncast/owncast/models"
|
||||
"github.com/owncast/owncast/utils"
|
||||
)
|
||||
|
||||
|
@ -27,8 +27,14 @@ var (
|
|||
var _pipe *os.File
|
||||
var _rtmpConnection net.Conn
|
||||
|
||||
var _setStreamAsConnected func()
|
||||
var _setBroadcaster func(models.Broadcaster)
|
||||
|
||||
//Start starts the rtmp service, listening on port 1935
|
||||
func Start() {
|
||||
func Start(setStreamAsConnected func(), setBroadcaster func(models.Broadcaster)) {
|
||||
_setStreamAsConnected = setStreamAsConnected
|
||||
_setBroadcaster = setBroadcaster
|
||||
|
||||
port := 1935
|
||||
s := rtmp.NewServer()
|
||||
var lis net.Listener
|
||||
|
@ -87,7 +93,7 @@ func HandleConn(c *rtmp.Conn, nc net.Conn) {
|
|||
syscall.Mkfifo(pipePath, 0666)
|
||||
|
||||
_hasInboundRTMPConnection = true
|
||||
core.SetStreamAsConnected()
|
||||
_setStreamAsConnected()
|
||||
_rtmpConnection = nc
|
||||
|
||||
f, err := os.OpenFile(pipePath, os.O_RDWR, os.ModeNamedPipe)
|
||||
|
@ -129,6 +135,6 @@ func Disconnect() {
|
|||
return
|
||||
}
|
||||
|
||||
log.Infoln("Inbound stream disconnect requested.")
|
||||
log.Traceln("Inbound stream disconnect requested.")
|
||||
handleDisconnect(_rtmpConnection)
|
||||
}
|
||||
|
|
|
@ -20,8 +20,8 @@ func GetStatus() models.Status {
|
|||
}
|
||||
}
|
||||
|
||||
// SetBroadcaster will store the current inbound broadcasting details
|
||||
func SetBroadcaster(broadcaster models.Broadcaster) {
|
||||
// setBroadcaster will store the current inbound broadcasting details
|
||||
func setBroadcaster(broadcaster models.Broadcaster) {
|
||||
_broadcaster = &broadcaster
|
||||
}
|
||||
|
||||
|
|
|
@ -11,6 +11,7 @@ import (
|
|||
|
||||
"github.com/owncast/owncast/config"
|
||||
"github.com/owncast/owncast/core/ffmpeg"
|
||||
"github.com/owncast/owncast/core/rtmp"
|
||||
"github.com/owncast/owncast/utils"
|
||||
|
||||
"github.com/grafov/m3u8"
|
||||
|
@ -22,8 +23,8 @@ var _offlineCleanupTimer *time.Timer
|
|||
// While a stream takes place cleanup old HLS content every N min.
|
||||
var _onlineCleanupTicker *time.Ticker
|
||||
|
||||
//SetStreamAsConnected sets the stream as connected
|
||||
func SetStreamAsConnected() {
|
||||
//setStreamAsConnected sets the stream as connected
|
||||
func setStreamAsConnected() {
|
||||
_stats.StreamConnected = true
|
||||
_stats.LastConnectTime = utils.NullTime{time.Now(), true}
|
||||
_stats.LastDisconnectTime = utils.NullTime{time.Now(), false}
|
||||
|
@ -62,6 +63,8 @@ func SetStreamAsDisconnected() {
|
|||
offlineFilePath := "static/" + offlineFilename
|
||||
|
||||
ffmpeg.StopThumbnailGenerator()
|
||||
rtmp.Disconnect()
|
||||
|
||||
if _yp != nil {
|
||||
_yp.Stop()
|
||||
}
|
||||
|
|
|
@ -10,16 +10,12 @@ import (
|
|||
"github.com/owncast/owncast/controllers"
|
||||
"github.com/owncast/owncast/controllers/admin"
|
||||
"github.com/owncast/owncast/core/chat"
|
||||
"github.com/owncast/owncast/core/rtmp"
|
||||
"github.com/owncast/owncast/router/middleware"
|
||||
"github.com/owncast/owncast/yp"
|
||||
)
|
||||
|
||||
//Start starts the router for the http, ws, and rtmp
|
||||
func Start() error {
|
||||
// start the rtmp server
|
||||
go rtmp.Start()
|
||||
|
||||
// static files
|
||||
http.HandleFunc("/", controllers.IndexHandler)
|
||||
|
||||
|
|
Loading…
Reference in a new issue