fix rtp keep alive bug
This commit is contained in:
parent
b9fb9fc360
commit
f2dca8e369
16
client.go
16
client.go
@ -123,12 +123,17 @@ func (self *Client) writeLine(line string) (err error) {
|
|||||||
|
|
||||||
func (self *Client) sendRtpKeepalive() (err error) {
|
func (self *Client) sendRtpKeepalive() (err error) {
|
||||||
if self.RtpKeepAliveTimeout > 0 {
|
if self.RtpKeepAliveTimeout > 0 {
|
||||||
if !self.rtpKeepaliveTimer.IsZero() && time.Now().Sub(self.rtpKeepaliveTimer) > self.RtpKeepAliveTimeout {
|
if self.rtpKeepaliveTimer.IsZero() {
|
||||||
|
self.rtpKeepaliveTimer = time.Now()
|
||||||
|
} else if time.Now().Sub(self.rtpKeepaliveTimer) > self.RtpKeepAliveTimeout {
|
||||||
|
self.rtpKeepaliveTimer = time.Now()
|
||||||
|
if self.DebugConn {
|
||||||
|
fmt.Println("rtp: keep alive")
|
||||||
|
}
|
||||||
if err = self.Options(); err != nil {
|
if err = self.Options(); err != nil {
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
self.rtpKeepaliveTimer = time.Now()
|
|
||||||
}
|
}
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
@ -174,19 +179,18 @@ func (self *Client) ReadResponse() (res Response, err error) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
} else if res.BlockLength > 0 {
|
} else if res.BlockLength > 0 {
|
||||||
if err = self.sendRtpKeepalive(); err != nil {
|
|
||||||
return
|
|
||||||
}
|
|
||||||
self.conn.Timeout = self.RtpTimeout
|
self.conn.Timeout = self.RtpTimeout
|
||||||
res.Block = make([]byte, res.BlockLength)
|
res.Block = make([]byte, res.BlockLength)
|
||||||
if _, err = io.ReadFull(self.rconn, res.Block); err != nil {
|
if _, err = io.ReadFull(self.rconn, res.Block); err != nil {
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
if err = self.sendRtpKeepalive(); err != nil {
|
||||||
|
return
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}()
|
}()
|
||||||
|
|
||||||
self.conn.Timeout = self.RtspTimeout
|
self.conn.Timeout = self.RtspTimeout
|
||||||
|
|
||||||
var h [4]byte
|
var h [4]byte
|
||||||
if _, err = io.ReadFull(self.rconn, h[:]); err != nil {
|
if _, err = io.ReadFull(self.rconn, h[:]); err != nil {
|
||||||
return
|
return
|
||||||
|
Loading…
x
Reference in New Issue
Block a user