From b652f1bfba3a2e30494425b5c594e2483b5c77d4 Mon Sep 17 00:00:00 2001 From: Dimitrii Lopanov Date: Fri, 26 Jun 2020 08:30:43 +0300 Subject: [PATCH] find rtsp must have left > 0 --- format/rtsp/client.go | 25 +++++++++++++++---------- 1 file changed, 15 insertions(+), 10 deletions(-) diff --git a/format/rtsp/client.go b/format/rtsp/client.go index 21854b8..907afbd 100644 --- a/format/rtsp/client.go +++ b/format/rtsp/client.go @@ -8,13 +8,6 @@ import ( "encoding/binary" "encoding/hex" "fmt" - "github.com/deepch/vdk/av" - "github.com/deepch/vdk/av/avutil" - "github.com/deepch/vdk/codec" - "github.com/deepch/vdk/codec/aacparser" - "github.com/deepch/vdk/codec/h264parser" - "github.com/deepch/vdk/format/rtsp/sdp" - "github.com/deepch/vdk/utils/bits/pio" "io" "log" "net" @@ -23,6 +16,14 @@ import ( "strconv" "strings" "time" + + "github.com/deepch/vdk/av" + "github.com/deepch/vdk/av/avutil" + "github.com/deepch/vdk/codec" + "github.com/deepch/vdk/codec/aacparser" + "github.com/deepch/vdk/codec/h264parser" + "github.com/deepch/vdk/format/rtsp/sdp" + "github.com/deepch/vdk/utils/bits/pio" ) var ErrCodecDataChange = fmt.Errorf("rtsp: codec data change, please call HandleCodecDataChange()") @@ -440,11 +441,15 @@ func (self *Client) findRTSP() (block []byte, data []byte, err error) { } if blocklen, _, ok := self.parseBlockHeader(peek); ok { left := blocklen + 4 - len(peek) - block = append(peek, make([]byte, left)...) - if _, err = io.ReadFull(self.brconn, block[len(peek):]); err != nil { + if left >= 0 { + block = append(peek, make([]byte, left)...) + if _, err = io.ReadFull(self.brconn, block[len(peek):]); err != nil { + return + } return + } else { + fmt.Println("Left < 0 ", blocklen, len(peek), left) } - return } stat = 0 peek = _peek[0:0]