diff --git a/internal/core/rtmp_source.go b/internal/core/rtmp_source.go index 34ed9cd2..4543d051 100644 --- a/internal/core/rtmp_source.go +++ b/internal/core/rtmp_source.go @@ -78,22 +78,17 @@ func (s *rtmpSource) log(level logger.Level, format string, args ...interface{}) func (s *rtmpSource) run() { defer s.wg.Done() +outer: for { - ok := func() bool { - ok := s.runInner() - if !ok { - return false - } - - select { - case <-time.After(rtmpSourceRetryPause): - return true - case <-s.ctx.Done(): - return false - } - }() + ok := s.runInner() if !ok { - break + break outer + } + + select { + case <-time.After(rtmpSourceRetryPause): + case <-s.ctx.Done(): + break outer } } @@ -158,7 +153,7 @@ func (s *rtmpSource) runInner() bool { Tracks: tracks, }) if res.Err != nil { - return err + return res.Err } s.log(logger.Info, "ready") diff --git a/internal/core/rtsp_source.go b/internal/core/rtsp_source.go index d3045e78..ce6a0349 100644 --- a/internal/core/rtsp_source.go +++ b/internal/core/rtsp_source.go @@ -177,7 +177,7 @@ func (s *rtspSource) runInner() bool { Tracks: conn.Tracks(), }) if res.Err != nil { - s.log(logger.Info, "ERR: %s", err) + s.log(logger.Info, "ERR: %s", res.Err) return true }