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/binary"
"encoding/hex" "encoding/hex"
"fmt" "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" "io"
"log" "log"
"net" "net"
@ -23,6 +16,14 @@ import (
"strconv" "strconv"
"strings" "strings"
"time" "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()") 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 { if blocklen, _, ok := self.parseBlockHeader(peek); ok {
left := blocklen + 4 - len(peek) left := blocklen + 4 - len(peek)
block = append(peek, make([]byte, left)...) if left >= 0 {
if _, err = io.ReadFull(self.brconn, block[len(peek):]); err != nil { block = append(peek, make([]byte, left)...)
if _, err = io.ReadFull(self.brconn, block[len(peek):]); err != nil {
return
}
return return
} else {
fmt.Println("Left < 0 ", blocklen, len(peek), left)
} }
return
} }
stat = 0 stat = 0
peek = _peek[0:0] peek = _peek[0:0]