Add reconnect logic to RTSP client

This commit is contained in:
Alexey Khit
2023-04-16 13:57:16 +03:00
parent 4b4deaaaf2
commit a5c4854aeb
5 changed files with 214 additions and 205 deletions
+10 -1
View File
@@ -28,7 +28,16 @@ func (c *Conn) AddTrack(media *core.Media, codec *core.Codec, track *core.Receiv
switch c.mode {
case core.ModeActiveProducer: // backchannel
if channel, err = c.SetupMedia(media, true); err != nil {
c.stateMu.Lock()
defer c.stateMu.Unlock()
if c.state == StatePlay {
if err = c.Reconnect(); err != nil {
return
}
}
if channel, err = c.SetupMedia(media); err != nil {
return
}