packetSize -> headerSizes.

This commit is contained in:
scruzin 2019-01-10 13:23:12 +10:30
parent 9796465018
commit 2333d1953e
1 changed files with 12 additions and 8 deletions

View File

@ -68,8 +68,12 @@ const (
RTMP_CHANNEL_SOURCE = 0x04
)
// packetSize defines valid packet sizes.
var packetSize = [...]int{12, 8, 4, 1}
// headerSizes defines header sizes for header types 0, 1, 2 and 3 respectively:
// 0: full header (12 bytes)
// 1: header without message ID (8 bytes)
// 2: basic header + timestamp (4 byes)
// 3: basic header (chunk type and stream ID) (1 byte)
var headerSizes = [...]int{12, 8, 4, 1}
// packet defines an RTMP packet.
type packet struct {
@ -154,7 +158,7 @@ func readPacket(s *Session, pkt *packet) error {
s.channelsAllocatedIn = n
}
size := packetSize[pkt.headerType]
size := headerSizes[pkt.headerType]
switch {
case size == RTMP_LARGE_HEADER_SIZE:
pkt.hasAbsTimestamp = true
@ -308,7 +312,7 @@ func sendPacket(s *Session, pkt *packet, queue bool) error {
if pkt.body != nil {
// Span from -packetsize for the type to the start of the body.
headBytes = pkt.header
origIdx = RTMP_MAX_HEADER_SIZE - packetSize[pkt.headerType]
origIdx = RTMP_MAX_HEADER_SIZE - headerSizes[pkt.headerType]
} else {
// Allocate a new header and allow 6 bytes of movement backward.
var hbuf [RTMP_MAX_HEADER_SIZE]byte
@ -324,7 +328,7 @@ func sendPacket(s *Session, pkt *packet, queue bool) error {
cSize = 1
}
hSize := packetSize[pkt.headerType]
hSize := headerSizes[pkt.headerType]
if cSize != 0 {
origIdx -= cSize
hSize += cSize
@ -365,7 +369,7 @@ func sendPacket(s *Session, pkt *packet, queue bool) error {
}
}
if packetSize[pkt.headerType] > 1 {
if headerSizes[pkt.headerType] > 1 {
res := ts
if ts > 0xffffff {
res = 0xffffff
@ -374,14 +378,14 @@ func sendPacket(s *Session, pkt *packet, queue bool) error {
headerIdx += 3 // 24bits
}
if packetSize[pkt.headerType] > 4 {
if headerSizes[pkt.headerType] > 4 {
C_AMF_EncodeInt24(headBytes[headerIdx:], int32(pkt.bodySize))
headerIdx += 3 // 24bits
headBytes[headerIdx] = pkt.packetType
headerIdx++
}
if packetSize[pkt.headerType] > 8 {
if headerSizes[pkt.headerType] > 8 {
n := int(encodeInt32LE(headBytes[headerIdx:headerIdx+4], pkt.info))
headerIdx += n
}