Skip to content

Commit df87667

Browse files
committed
fix: hls retry
1 parent 162e58c commit df87667

File tree

1 file changed

+12
-2
lines changed

1 file changed

+12
-2
lines changed

server/channel.go

Lines changed: 12 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,8 +3,10 @@ package server
33
import (
44
"context"
55
"errors"
6+
"runtime"
67
"sync"
78
"sync/atomic"
9+
"time"
810

911
"github.com/zijiren233/gencontainer/rwmap"
1012
"github.com/zijiren233/livelib/av"
@@ -182,8 +184,16 @@ func (c *Channel) InitHlsPlayer(conf ...hls.SourceConf) error {
182184
go func() {
183185
for {
184186
if err := c.AddPlayer(p); err != nil {
185-
p.Close()
186-
return
187+
if errors.Is(err, ErrClosed) {
188+
p.Close()
189+
return
190+
}
191+
if errors.Is(err, ErrPusherNotInPublication) {
192+
time.Sleep(time.Second)
193+
} else {
194+
runtime.Gosched()
195+
}
196+
continue
187197
}
188198
_ = p.SendPacket(context.Background())
189199
p.Close()

0 commit comments

Comments
 (0)