add rtpKeepaliveEnterCnt to fix keepalive reenter problem
This commit is contained in:
parent
199ccf8ec0
commit
4fb78f9e74
@ -34,6 +34,7 @@ type Client struct {
|
|||||||
RtpTimeout time.Duration
|
RtpTimeout time.Duration
|
||||||
RtpKeepAliveTimeout time.Duration
|
RtpKeepAliveTimeout time.Duration
|
||||||
rtpKeepaliveTimer time.Time
|
rtpKeepaliveTimer time.Time
|
||||||
|
rtpKeepaliveEnterCnt int
|
||||||
|
|
||||||
setupCalled bool
|
setupCalled bool
|
||||||
setupIdx []int
|
setupIdx []int
|
||||||
@ -117,7 +118,11 @@ func (self *Client) Streams() (streams []av.CodecData, err error) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func (self *Client) sendRtpKeepalive() (err error) {
|
func (self *Client) sendRtpKeepalive() (err error) {
|
||||||
if self.RtpKeepAliveTimeout > 0 {
|
if self.RtpKeepAliveTimeout > 0 && self.rtpKeepaliveEnterCnt == 0 {
|
||||||
|
self.rtpKeepaliveEnterCnt++
|
||||||
|
defer func() {
|
||||||
|
self.rtpKeepaliveEnterCnt--
|
||||||
|
}()
|
||||||
if self.rtpKeepaliveTimer.IsZero() {
|
if self.rtpKeepaliveTimer.IsZero() {
|
||||||
self.rtpKeepaliveTimer = time.Now()
|
self.rtpKeepaliveTimer = time.Now()
|
||||||
} else if time.Now().Sub(self.rtpKeepaliveTimer) > self.RtpKeepAliveTimeout {
|
} else if time.Now().Sub(self.rtpKeepaliveTimer) > self.RtpKeepAliveTimeout {
|
||||||
|
Loading…
x
Reference in New Issue
Block a user