Browse Source

fix memory leak when receiving streams with tcp

pull/169/head
aler9 5 years ago
parent
commit
282a15ebba
  1. 22
      client/client.go

22
client/client.go

@ -836,13 +836,13 @@ func (c *Client) runInitial() bool {
req, err := c.conn.ReadRequest() req, err := c.conn.ReadRequest()
if err != nil { if err != nil {
readDone <- err readDone <- err
break return
} }
err = c.handleRequest(req) err = c.handleRequest(req)
if err != nil { if err != nil {
readDone <- err readDone <- err
break return
} }
} }
}() }()
@ -963,13 +963,13 @@ func (c *Client) runPlayUDP() {
req, err := c.conn.ReadRequest() req, err := c.conn.ReadRequest()
if err != nil { if err != nil {
readDone <- err readDone <- err
break return
} }
err = c.handleRequest(req) err = c.handleRequest(req)
if err != nil { if err != nil {
readDone <- err readDone <- err
break return
} }
} }
}() }()
@ -1002,7 +1002,7 @@ func (c *Client) runPlayTCP() {
recv, err := c.conn.ReadFrameTCPOrRequest(false) recv, err := c.conn.ReadFrameTCPOrRequest(false)
if err != nil { if err != nil {
readDone <- err readDone <- err
break return
} }
switch recvt := recv.(type) { switch recvt := recv.(type) {
@ -1015,7 +1015,7 @@ func (c *Client) runPlayTCP() {
err := <-res err := <-res
if err != nil { if err != nil {
readDone <- err readDone <- err
break return
} }
} }
} }
@ -1147,13 +1147,13 @@ func (c *Client) runRecordUDP() {
req, err := c.conn.ReadRequest() req, err := c.conn.ReadRequest()
if err != nil { if err != nil {
readDone <- err readDone <- err
break return
} }
err = c.handleRequest(req) err = c.handleRequest(req)
if err != nil { if err != nil {
readDone <- err readDone <- err
break return
} }
} }
}() }()
@ -1221,14 +1221,14 @@ func (c *Client) runRecordTCP() {
recv, err := c.conn.ReadFrameTCPOrRequest(true) recv, err := c.conn.ReadFrameTCPOrRequest(true)
if err != nil { if err != nil {
readDone <- err readDone <- err
break return
} }
switch recvt := recv.(type) { switch recvt := recv.(type) {
case *base.InterleavedFrame: case *base.InterleavedFrame:
if recvt.TrackId >= len(c.streamTracks) { if recvt.TrackId >= len(c.streamTracks) {
readDone <- fmt.Errorf("invalid track id '%d'", recvt.TrackId) readDone <- fmt.Errorf("invalid track id '%d'", recvt.TrackId)
break return
} }
c.rtcpReceivers[recvt.TrackId].OnFrame(recvt.StreamType, recvt.Content) c.rtcpReceivers[recvt.TrackId].OnFrame(recvt.StreamType, recvt.Content)
@ -1238,7 +1238,7 @@ func (c *Client) runRecordTCP() {
err := c.handleRequest(recvt) err := c.handleRequest(recvt)
if err != nil { if err != nil {
readDone <- err readDone <- err
break return
} }
} }
} }

Loading…
Cancel
Save