From af79e6054bfbc08c0727a048869aee6703036ba9 Mon Sep 17 00:00:00 2001 From: Yousong Zhou Date: Fri, 7 Apr 2023 16:46:20 +0800 Subject: [PATCH] rtsp: conn.Close() before retry dialing with backchannel=false --- pkg/rtsp/client.go | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/pkg/rtsp/client.go b/pkg/rtsp/client.go index df17d531..29757046 100644 --- a/pkg/rtsp/client.go +++ b/pkg/rtsp/client.go @@ -5,14 +5,15 @@ import ( "crypto/tls" "errors" "fmt" - "github.com/AlexxIT/go2rtc/pkg/core" - "github.com/AlexxIT/go2rtc/pkg/tcp" "net" "net/http" "net/url" "strconv" "strings" "time" + + "github.com/AlexxIT/go2rtc/pkg/core" + "github.com/AlexxIT/go2rtc/pkg/tcp" ) func NewClient(uri string) *Conn { @@ -309,6 +310,7 @@ func (c *Conn) SetupMedia(media *core.Media, first bool) (byte, error) { // some Dahua/Amcrest cameras fail here because two simultaneous // backchannel connections if c.Backchannel { + c.Close() c.Backchannel = false if err := c.Dial(); err != nil { return 0, err