Versions in this module Expand all Collapse all v1 v1.0.1 Jul 20, 2023 Changes in this version + const DefaultBufferPoolSize + const DefaultBufferReverse + const DefaultWriteBufferSize + const RtpHeaderMinSize + var CSRCLengthOutOfRange = errors.New("RTP CSRC长度超过限制(0, 15)") + var DebugLogger = assert.Must(...()) + var ExtensionLengthOutOfRange = errors.New("RTP扩展头部长度超过限制(0, 65535)") + var InvalidTCPHeaderIDError = errors.New("invalid tcp header id") + var InvalidVersionError = errors.New("RTP版本号必须为2") + var PacketSizeNotEnoughError = errors.New("RTP包大小不够") + var PayloadLengthOutOfRange = errors.New("RTP负载长度超过限制(0, 65535)") + var ZeroPaddingLengthError = errors.New("RTP填充长度不能为0") + func DefaultLayerProvider(payloadProvider func() Payload) func() Layer + func DefaultPacketProvider(payloadProvider func() Payload) func(pool pool.Pool[*DefaultPacket]) *DefaultPacket + type Buffer struct + func (b *Buffer) AddRef() + func (b *Buffer) Alloc(size uint) *Data + func (b *Buffer) Get() []byte + func (b *Buffer) Release() + func (b *Buffer) Use() *Buffer + type BufferPool struct + func NewBufferPool(size uint) BufferPool + func (p BufferPool) Get() *Buffer + type Data struct + Data []byte + func (d *Data) AddRef() + func (d *Data) Release() + func (d *Data) Use() *Data + type DefaultLayer struct + func NewDefaultLayer(payload Payload) *DefaultLayer + func (l *DefaultLayer) Bytes() []byte + func (l *DefaultLayer) Init(payload Payload) + func (l *DefaultLayer) Payload() Payload + func (l *DefaultLayer) Read(p []byte) (n int, err error) + func (l *DefaultLayer) SetPayload(payload Payload) + func (l *DefaultLayer) Size() int + func (l *DefaultLayer) String() string + func (l *DefaultLayer) WriteTo(w io.Writer) (n int64, err error) + type DefaultPacket struct + func NewDefaultPacket(pool pool.Pool[*DefaultPacket], payload Payload) *DefaultPacket + func (p *DefaultPacket) AddRef() + func (p *DefaultPacket) AddRelation(relation pool.Reference) + func (p *DefaultPacket) Clear() + func (p *DefaultPacket) Release() bool + func (p *DefaultPacket) Use() *DefaultPacket + type Header struct + func (l *Header) AddCSRC(csrc uint32) + func (l *Header) AddCSRCList(csrcList ...uint32) + func (l *Header) AddExtensionContent(content uint32) + func (l *Header) AddExtensionContents(contents ...uint32) + func (l *Header) CSRCCount() uint8 + func (l *Header) CSRCList() []uint32 + func (l *Header) Clear() + func (l *Header) DumpHeader(header *Header) + func (l *Header) ExtensionContents() []uint32 + func (l *Header) ExtensionLength() uint16 + func (l *Header) ExtensionProfile() uint16 + func (l *Header) HasExtension() bool + func (l *Header) HasPadding() bool + func (l *Header) Marker() bool + func (l *Header) PaddingLength() uint8 + func (l *Header) PayloadType() uint8 + func (l *Header) SSRC() uint32 + func (l *Header) SequenceNumber() uint16 + func (l *Header) SetCSRCList(csrcList []uint32) + func (l *Header) SetExtensionContents(contents []uint32) + func (l *Header) SetExtensionProfile(profile uint16) + func (l *Header) SetMarker(maker bool) + func (l *Header) SetPaddingLength(length uint8) + func (l *Header) SetPayloadType(payloadType uint8) + func (l *Header) SetSSRC(ssrc uint32) + func (l *Header) SetSequenceNumber(seq uint16) + func (l *Header) SetTimestamp(timestamp uint32) + func (l *Header) Timestamp() uint32 + func (l *Header) Version() uint8 + type IncomingLayer struct + func BuildIncomingLayer(cfg *IncomingLayerConfig) *IncomingLayer + func NewIncomingLayer() *IncomingLayer + func (l *IncomingLayer) Bytes() []byte + func (l *IncomingLayer) Payload() Payload + func (l *IncomingLayer) Read(p []byte) (n int, err error) + func (l *IncomingLayer) Size() int + func (l *IncomingLayer) String() string + func (l *IncomingLayer) Unmarshal(data []byte) error + func (l *IncomingLayer) UnmarshalChunks(cs [][]byte) error + func (l *IncomingLayer) WriteTo(w io.Writer) (n int64, err error) + type IncomingLayerConfig struct + CSRCList []uint32 + ExtensionContents []uint32 + ExtensionProfile uint16 + Marker bool + PaddingLength uint8 + PayloadContent []byte + PayloadContents [][]byte + PayloadType uint8 + SSRC uint32 + SequenceNumber uint16 + Timestamp uint32 + type IncomingPacket struct + func NewIncomingPacket(layer *IncomingLayer, pool pool.Pool[*IncomingPacket]) *IncomingPacket + func ProvideIncomingPacket(p pool.Pool[*IncomingPacket]) *IncomingPacket + func (p *IncomingPacket) AddRef() + func (p *IncomingPacket) AddRelation(relation pool.Reference) + func (p *IncomingPacket) Addr() net.Addr + func (p *IncomingPacket) Clear() + func (p *IncomingPacket) Release() bool + func (p *IncomingPacket) SetAddr(addr net.Addr) + func (p *IncomingPacket) SetTime(t time.Time) + func (p *IncomingPacket) Time() time.Time + func (p *IncomingPacket) Use() *IncomingPacket + type IncomingPayload struct + func NewIncomingPayload() *IncomingPayload + func (p *IncomingPayload) AddContent(content []byte) *IncomingPayload + func (p *IncomingPayload) AddContents(contents ...[]byte) *IncomingPayload + func (p *IncomingPayload) Bytes() []byte + func (p *IncomingPayload) Clear() + func (p *IncomingPayload) Content() []byte + func (p *IncomingPayload) Extends() [][]byte + func (p *IncomingPayload) Range(f func(chunk []byte) bool) bool + func (p *IncomingPayload) Read(buf []byte) (n int, err error) + func (p *IncomingPayload) SetContent(content []byte) *IncomingPayload + func (p *IncomingPayload) SetContents(contents [][]byte) *IncomingPayload + func (p *IncomingPayload) Size() int + func (p *IncomingPayload) WriteTo(w io.Writer) (n int64, err error) + type Layer interface + AddCSRC func(csrc uint32) + AddCSRCList func(csrcList ...uint32) + AddExtensionContent func(content uint32) + AddExtensionContents func(contents ...uint32) + Bytes func() []byte + CSRCCount func() uint8 + CSRCList func() []uint32 + DumpHeader func(header *Header) + ExtensionContents func() []uint32 + ExtensionLength func() uint16 + ExtensionProfile func() uint16 + HasExtension func() bool + HasPadding func() bool + Marker func() bool + PaddingLength func() uint8 + Payload func() Payload + PayloadType func() uint8 + SSRC func() uint32 + SequenceNumber func() uint16 + SetCSRCList func(csrcList []uint32) + SetExtensionContents func(contents []uint32) + SetExtensionProfile func(profile uint16) + SetMarker func(maker bool) + SetPaddingLength func(length uint8) + SetPayloadType func(payloadType uint8) + SetSSRC func(ssrc uint32) + SetSequenceNumber func(seq uint16) + SetTimestamp func(timestamp uint32) + Size func() int + Timestamp func() uint32 + Version func() uint8 + func ProvideIncomingLayer() Layer + type Packet interface + AddRelation func(relation pool.Reference) + Clear func() + func UsePacket(packet Packet) Packet + type Parser struct + Layer *IncomingLayer + Length uint16 + func (p *Parser) Parse(buf []byte) (ok bool, remain []byte, err error) + type Payload interface + Bytes func() []byte + Clear func() + Size func() int + func ProvideIncomingPayload() Payload + type Reader struct + Reader io.Reader + func (r *Reader) Read() (layer *IncomingLayer, err error) + type Writer struct + Writer io.Writer + func (w *Writer) Write(layer *IncomingLayer) error