find rtsp must have left > 0
This commit is contained in:
		| @@ -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] | ||||
|   | ||||
		Reference in New Issue
	
	Block a user
	 Dimitrii Lopanov
					Dimitrii Lopanov