find rtsp must have left > 0

This commit is contained in:
Dimitrii Lopanov 2020-06-26 08:30:43 +03:00
parent 2f1e328215
commit b652f1bfba

View File

@ -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]