Versions in this module Expand all Collapse all v1 v1.0.1 Jul 20, 2023 Changes in this version + const BaseHeaderSize + const DefaultBufferPoolSize + const DefaultBufferReverse + const MaxCSRCs + const MaxExtensions + var CSRCLengthOutOfRange = errors.New("RTP CSRC长度超过限制(0, 15)") + var ExtensionLengthOutOfRange = errors.New("RTP扩展头部长度超过限制(0, 65535)") + 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 OutputLayerProvider(payloadProvider func() Payload) func() Layer + func OutputPacketProvider(payloadProvider func() Payload) func(pool pool.Pool[*OutputPacket]) *OutputPacket + type CSRCs interface + type DefaultExtension struct + func (e *DefaultExtension) Append(contents ...uint32) + func (e *DefaultExtension) Clear() + func (e *DefaultExtension) Get(i int) uint32 + func (e *DefaultExtension) Len() int + func (e *DefaultExtension) Profile() uint16 + func (e *DefaultExtension) Replace(contents ...uint32) + func (e *DefaultExtension) Set(i int, content uint32) + func (e *DefaultExtension) SetProfile(profile uint16) + func (e *DefaultExtension) Size() int + type DefaultHeader struct + func (h *DefaultHeader) CSRCs() CSRCs + func (h *DefaultHeader) Clear() + func (h *DefaultHeader) Extension() Extension + func (h *DefaultHeader) HasExtension() bool + func (h *DefaultHeader) HasPadding() bool + func (h *DefaultHeader) Marker() bool + func (h *DefaultHeader) PayloadType() uint8 + func (h *DefaultHeader) SSRC() uint32 + func (h *DefaultHeader) SequenceNumber() uint16 + func (h *DefaultHeader) SetMarker(maker bool) + func (h *DefaultHeader) SetPayloadType(payloadType uint8) + func (h *DefaultHeader) SetSSRC(ssrc uint32) + func (h *DefaultHeader) SetSequenceNumber(seq uint16) + func (h *DefaultHeader) SetTimestamp(timestamp uint32) + func (h *DefaultHeader) Timestamp() uint32 + func (h *DefaultHeader) Version() uint8 + func (h *DefaultHeader) WriteTo(w io.Writer) (n int64, err error) + type Extension interface + Profile func() uint16 + SetProfile func(profile uint16) + type Handler interface + HandlePacket func(stream Stream, packet *rtp.IncomingPacket) (dropped, keep bool) + OnParseError func(stream Stream, err error) (keep bool) + OnStreamClosed func(stream Stream) + type Header interface + CSRCs func() CSRCs + Clear func() + Extension func() Extension + HasExtension func() bool + HasPadding func() bool + Marker func() bool + PayloadType func() uint8 + SSRC func() uint32 + SequenceNumber func() uint16 + SetMarker func(maker bool) + SetPayloadType func(payloadType uint8) + SetSSRC func(ssrc uint32) + SetSequenceNumber func(seq uint16) + SetTimestamp func(timestamp uint32) + Timestamp func() uint32 + Version func() uint8 + type IncomingPayload struct + func NewIncomingPayload() *IncomingPayload + func (p *IncomingPayload) AddContents(contents ...[]byte) *IncomingPayload + func (p *IncomingPayload) Bytes() []byte + func (p *IncomingPayload) Clear() + func (p *IncomingPayload) Range(f func(chunk []byte) bool) bool + func (p *IncomingPayload) SetContents(contents ...[]byte) *IncomingPayload + func (p *IncomingPayload) Size() int + func (p *IncomingPayload) WriteTo(w io.Writer) (n int64, err error) + type InputLayer struct + func NewInputLayer() *InputLayer + func (l *InputLayer) Bytes() []byte + func (l *InputLayer) Clear() + func (l *InputLayer) PaddingLength() uint8 + func (l *InputLayer) Payload() Payload + func (l *InputLayer) SetPaddingLength(length uint8) + func (l *InputLayer) Size() int + func (l *InputLayer) String() string + func (l *InputLayer) Unmarshal(data []byte) error + func (l *InputLayer) UnmarshalChunks(cs [][]byte) error + func (l *InputLayer) WriteTo(w io.Writer) (n int64, err error) + type InputPacket struct + func NewInputPacket(layer *InputLayer, pool pool.Pool[*InputPacket]) *InputPacket + func ProvideInputPacket(p pool.Pool[*InputPacket]) *InputPacket + func (p *InputPacket) AddRef() + func (p *InputPacket) AddRelation(relation pool.Reference) + func (p *InputPacket) Addr() net.Addr + func (p *InputPacket) Clear() + func (p *InputPacket) Release() bool + func (p *InputPacket) SetAddr(addr net.Addr) + func (p *InputPacket) SetTime(t time.Time) + func (p *InputPacket) Time() time.Time + func (p *InputPacket) Use() *InputPacket + type Layer interface + Bytes func() []byte + PaddingLength func() uint8 + Payload func() Payload + SetPaddingLength func(length uint8) + Size func() int + func ProvideInputLayer() Layer + type OutputLayer struct + func NewOutputLayer(payload Payload) *OutputLayer + func (l *OutputLayer) Bytes() []byte + func (l *OutputLayer) Clear() + func (l *OutputLayer) Init(payload Payload) + func (l *OutputLayer) PaddingLength() uint8 + func (l *OutputLayer) Payload() Payload + func (l *OutputLayer) SetPaddingLength(length uint8) + func (l *OutputLayer) SetPayload(payload Payload) + func (l *OutputLayer) Size() int + func (l *OutputLayer) String() string + func (l *OutputLayer) WriteTo(w io.Writer) (n int64, err error) + type OutputPacket struct + func NewOutputPacket(pool pool.Pool[*OutputPacket], payload Payload) *OutputPacket + func (p *OutputPacket) AddRef() + func (p *OutputPacket) AddRelation(relation pool.Reference) + func (p *OutputPacket) Clear() + func (p *OutputPacket) Release() bool + func (p *OutputPacket) Use() *OutputPacket + type Packet interface + func UsePacket(packet Packet) Packet + type Padding uint8 + func (p Padding) Len() uint8 + func (p Padding) WriteTo(w io.Writer) (n int64, err error) + type Parser struct + Layer *InputLayer + Length uint16 + func (p *Parser) Parse(buf []byte) (ok bool, remain []byte, err error) + func (p *Parser) Reset() + type Payload interface + Bytes func() []byte + Clear func() + Size func() int + func ProvideIncomingPayload() Payload + type Server interface + Addr func() net.Addr + type SliceCSRCs []uint32 + func (cs *SliceCSRCs) Append(csrcs ...uint32) + func (cs *SliceCSRCs) Clear() + func (cs *SliceCSRCs) Get(i int) uint32 + func (cs *SliceCSRCs) Len() int + func (cs *SliceCSRCs) Replace(csrcs ...uint32) + func (cs *SliceCSRCs) Set(i int, csrc uint32) + func (cs *SliceCSRCs) Size() int + type Stream interface + Close func() + CloseConn func() bool + GetOnTimeout func() func(Stream) + Handler func() Handler + LocalAddr func() net.Addr + OnLossPacket func() func(stream Stream, loss int) + RemoteAddr func() net.Addr + SSRC func() int64 + Send func(layer rtp.Layer) error + SetCloseConn func(enable bool) Stream + SetHandler func(handler Handler) Stream + SetOnLossPacket func(onLossPacket func(stream Stream, loss int)) Stream + SetOnTimeout func(onTimeout func(Stream)) Stream + SetRemoteAddr func(addr net.Addr) Stream + SetSSRC func(ssrc int64) Stream + SetTimeout func(timeout time.Duration) Stream + Timeout func() time.Duration