Browse Source

do not allow closed static sources to set a path as ready

pull/523/head
aler9 5 years ago
parent
commit
a2ff0d455f
  1. 9
      internal/core/path.go
  2. 1
      internal/core/rtmp_source.go
  3. 1
      internal/core/rtsp_source.go

9
internal/core/path.go

@ -92,6 +92,7 @@ type pathSourceStaticSetReadyRes struct {
} }
type pathSourceStaticSetReadyReq struct { type pathSourceStaticSetReadyReq struct {
Source sourceStatic
Tracks gortsplib.Tracks Tracks gortsplib.Tracks
Res chan pathSourceStaticSetReadyRes Res chan pathSourceStaticSetReadyRes
} }
@ -348,8 +349,12 @@ outer:
} }
case req := <-pa.sourceStaticSetReady: case req := <-pa.sourceStaticSetReady:
pa.sourceSetReady(req.Tracks) if req.Source == pa.source {
req.Res <- pathSourceStaticSetReadyRes{Stream: pa.stream} pa.sourceSetReady(req.Tracks)
req.Res <- pathSourceStaticSetReadyRes{Stream: pa.stream}
} else {
req.Res <- pathSourceStaticSetReadyRes{Err: fmt.Errorf("terminated")}
}
case req := <-pa.sourceStaticSetNotReady: case req := <-pa.sourceStaticSetNotReady:
if req.Source == pa.source { if req.Source == pa.source {

1
internal/core/rtmp_source.go

@ -159,6 +159,7 @@ func (s *rtmpSource) runInner() bool {
s.log(logger.Info, "ready") s.log(logger.Info, "ready")
res := s.parent.OnSourceStaticSetReady(pathSourceStaticSetReadyReq{ res := s.parent.OnSourceStaticSetReady(pathSourceStaticSetReadyReq{
Source: s,
Tracks: tracks, Tracks: tracks,
}) })
if res.Err != nil { if res.Err != nil {

1
internal/core/rtsp_source.go

@ -178,6 +178,7 @@ func (s *rtspSource) runInner() bool {
s.log(logger.Info, "ready") s.log(logger.Info, "ready")
res := s.parent.OnSourceStaticSetReady(pathSourceStaticSetReadyReq{ res := s.parent.OnSourceStaticSetReady(pathSourceStaticSetReadyReq{
Source: s,
Tracks: conn.Tracks(), Tracks: conn.Tracks(),
}) })
if res.Err != nil { if res.Err != nil {

Loading…
Cancel
Save