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

This commit is contained in:
aler9 2021-08-18 15:41:03 +02:00
parent 279459a472
commit a2ff0d455f
3 changed files with 9 additions and 2 deletions

View File

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

View File

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

View File

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