mirror of https://bitbucket.org/ausocean/av.git
stream/rtp/encoder.go: sendLen to sendSize and capturing error from e.Encode()
This commit is contained in:
parent
01513fbb3f
commit
716a92a72c
|
@ -40,7 +40,7 @@ const (
|
|||
timestampFreq = 90000 // Hz
|
||||
mtsSize = 188
|
||||
bufferSize = 1000
|
||||
sendLen = 7 * 188
|
||||
sendSize = 7 * 188
|
||||
)
|
||||
|
||||
// Encoder implements io writer and provides functionality to wrap data into
|
||||
|
@ -72,13 +72,16 @@ func NewEncoder(dst io.Writer, fps int) *Encoder {
|
|||
// so that multiple layers of packetization can occur.
|
||||
func (e *Encoder) Write(data []byte) (int, error) {
|
||||
e.buffer = append(e.buffer, data...)
|
||||
if len(e.buffer) < sendLen { // sendSize
|
||||
if len(e.buffer) < sendSize {
|
||||
return len(data), nil
|
||||
}
|
||||
buf := e.buffer
|
||||
for len(buf) != 0 {
|
||||
l := min(sendLen, len(buf)) // sendSize
|
||||
e.Encode(buf[:l])
|
||||
l := min(sendSize, len(buf))
|
||||
err := e.Encode(buf[:l])
|
||||
if err != nil {
|
||||
return len(data), err
|
||||
}
|
||||
buf = buf[l:]
|
||||
}
|
||||
e.buffer = e.buffer[:0]
|
||||
|
|
|
@ -35,7 +35,7 @@ package rtp
|
|||
const (
|
||||
rtpVer = 2
|
||||
headSize = 3 * 4 // Header size of an rtp packet.
|
||||
defPayloadSize = sendLen // Default payload size for the rtp packet.
|
||||
defPayloadSize = sendSize // Default payload size for the rtp packet.
|
||||
defPktSize = headSize + defPayloadSize // Default packet size is header size + payload size.
|
||||
)
|
||||
|
||||
|
|
Loading…
Reference in New Issue