diff --git a/internal/rtpbuffer/rtpbuffer.go b/internal/rtpbuffer/rtpbuffer.go index 94c7adfe..a2f8eb29 100644 --- a/internal/rtpbuffer/rtpbuffer.go +++ b/internal/rtpbuffer/rtpbuffer.go @@ -4,9 +4,7 @@ // Package rtpbuffer provides a buffer for storing RTP packets package rtpbuffer -import ( - "fmt" -) +import "fmt" const ( // Uint16SizeHalf is half of a math.Uint16. @@ -26,25 +24,30 @@ type RTPBuffer struct { // NewRTPBuffer constructs a new RTPBuffer. func NewRTPBuffer(size uint16) (*RTPBuffer, error) { - allowedSizes := make([]uint16, 0) - correctSize := false + if err := IsBufferSizeValid(size); err != nil { + return nil, err + } + + return &RTPBuffer{ + packets: make([]*RetainablePacket, size), + size: size, + }, nil +} + +func IsBufferSizeValid(size uint16) error { for i := 0; i < 16; i++ { if size == 1<