Documentation ¶
Overview ¶
Package rtp provides RTP packetizer and depacketizer
Index ¶
- type AbsSendTimeExtension
- type AudioLevelExtension
- type Depacketizer
- type Extension
- type Header
- func (h Header) Clone() Header
- func (h *Header) DelExtension(id uint8) error
- func (h *Header) GetExtension(id uint8) []byte
- func (h *Header) GetExtensionIDs() []uint8
- func (h Header) Marshal() (buf []byte, err error)
- func (h Header) MarshalSize() int
- func (h Header) MarshalTo(buf []byte) (n int, err error)
- func (h *Header) SetExtension(id uint8, payload []byte) error
- func (h *Header) Unmarshal(buf []byte) (n int, err error)
- type HeaderExtension
- type OneByteHeaderExtension
- func (e *OneByteHeaderExtension) Del(id uint8) error
- func (e *OneByteHeaderExtension) Get(id uint8) []byte
- func (e *OneByteHeaderExtension) GetIDs() []uint8
- func (e OneByteHeaderExtension) Marshal() ([]byte, error)
- func (e OneByteHeaderExtension) MarshalSize() int
- func (e OneByteHeaderExtension) MarshalTo(buf []byte) (int, error)
- func (e *OneByteHeaderExtension) Set(id uint8, buf []byte) error
- func (e *OneByteHeaderExtension) Unmarshal(buf []byte) (int, error)
- type Packet
- type Packetizer
- type PartitionHeadChecker
- type Payloader
- type RawExtension
- func (e *RawExtension) Del(id uint8) error
- func (e *RawExtension) Get(id uint8) []byte
- func (e *RawExtension) GetIDs() []uint8
- func (e RawExtension) Marshal() ([]byte, error)
- func (e RawExtension) MarshalSize() int
- func (e RawExtension) MarshalTo(buf []byte) (int, error)
- func (e *RawExtension) Set(id uint8, payload []byte) error
- func (e *RawExtension) Unmarshal(buf []byte) (int, error)
- type Sequencer
- type TransportCCExtension
- type TwoByteHeaderExtension
- func (e *TwoByteHeaderExtension) Del(id uint8) error
- func (e *TwoByteHeaderExtension) Get(id uint8) []byte
- func (e *TwoByteHeaderExtension) GetIDs() []uint8
- func (e TwoByteHeaderExtension) Marshal() ([]byte, error)
- func (e TwoByteHeaderExtension) MarshalSize() int
- func (e TwoByteHeaderExtension) MarshalTo(buf []byte) (int, error)
- func (e *TwoByteHeaderExtension) Set(id uint8, buf []byte) error
- func (e *TwoByteHeaderExtension) Unmarshal(buf []byte) (int, error)
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type AbsSendTimeExtension ¶ added in v1.4.0
type AbsSendTimeExtension struct {
Timestamp uint64
}
AbsSendTimeExtension is a extension payload format in http://www.webrtc.org/experiments/rtp-hdrext/abs-send-time
func NewAbsSendTimeExtension ¶ added in v1.5.4
func NewAbsSendTimeExtension(sendTime time.Time) *AbsSendTimeExtension
NewAbsSendTimeExtension makes new AbsSendTimeExtension from time.Time.
func (*AbsSendTimeExtension) Estimate ¶ added in v1.4.0
func (t *AbsSendTimeExtension) Estimate(receive time.Time) time.Time
Estimate absolute send time according to the receive time. Note that if the transmission delay is larger than 64 seconds, estimated time will be wrong.
func (AbsSendTimeExtension) Marshal ¶ added in v1.4.0
func (t AbsSendTimeExtension) Marshal() ([]byte, error)
Marshal serializes the members to buffer.
func (*AbsSendTimeExtension) Unmarshal ¶ added in v1.4.0
func (t *AbsSendTimeExtension) Unmarshal(rawData []byte) error
Unmarshal parses the passed byte slice and stores the result in the members.
type AudioLevelExtension ¶ added in v1.5.0
AudioLevelExtension is a extension payload format described in https://tools.ietf.org/html/rfc6464
Implementation based on: https://chromium.googlesource.com/external/webrtc/+/e2a017725570ead5946a4ca8235af27470ca0df9/webrtc/modules/rtp_rtcp/source/rtp_header_extensions.cc#49
One byte format: 0 1 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ID | len=0 |V| level | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Two byte format: 0 1 2 3 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ID | len=1 |V| level | 0 (pad) | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
func (AudioLevelExtension) Marshal ¶ added in v1.5.0
func (a AudioLevelExtension) Marshal() ([]byte, error)
Marshal serializes the members to buffer
func (*AudioLevelExtension) Unmarshal ¶ added in v1.5.0
func (a *AudioLevelExtension) Unmarshal(rawData []byte) error
Unmarshal parses the passed byte slice and stores the result in the members
type Depacketizer ¶
type Depacketizer interface { Unmarshal(packet []byte) ([]byte, error) // Checks if the packet is at the beginning of a partition. This // should return false if the result could not be determined, in // which case the caller will detect timestamp discontinuities. IsPartitionHead(payload []byte) bool // Checks if the packet is at the end of a partition. This should // return false if the result could not be determined. IsPartitionTail(marker bool, payload []byte) bool }
Depacketizer depacketizes a RTP payload, removing any RTP specific data from the payload
type Extension ¶ added in v1.5.0
type Extension struct {
// contains filtered or unexported fields
}
Extension RTP Header extension
type Header ¶
type Header struct { Version uint8 Padding bool Extension bool Marker bool PayloadType uint8 SequenceNumber uint16 Timestamp uint32 SSRC uint32 CSRC []uint32 ExtensionProfile uint16 Extensions []Extension }
Header represents an RTP packet header
func (*Header) DelExtension ¶ added in v1.5.2
DelExtension Removes an RTP Header extension
func (*Header) GetExtension ¶ added in v1.5.0
GetExtension returns an RTP header extension
func (*Header) GetExtensionIDs ¶ added in v1.6.2
GetExtensionIDs returns an extension id array
func (Header) MarshalSize ¶
MarshalSize returns the size of the header once marshaled.
func (*Header) SetExtension ¶ added in v1.5.0
SetExtension sets an RTP header extension
type HeaderExtension ¶ added in v1.7.8
type HeaderExtension interface { Set(id uint8, payload []byte) error GetIDs() []uint8 Get(id uint8) []byte Del(id uint8) error Unmarshal(buf []byte) (int, error) Marshal() ([]byte, error) MarshalTo(buf []byte) (int, error) MarshalSize() int }
HeaderExtension represents an RTP extension header.
type OneByteHeaderExtension ¶ added in v1.7.8
type OneByteHeaderExtension struct {
// contains filtered or unexported fields
}
OneByteHeaderExtension is an RFC8285 one-byte header extension.
func (*OneByteHeaderExtension) Del ¶ added in v1.7.8
func (e *OneByteHeaderExtension) Del(id uint8) error
Del deletes the extension with the specified ID.
func (*OneByteHeaderExtension) Get ¶ added in v1.7.8
func (e *OneByteHeaderExtension) Get(id uint8) []byte
Get returns the payload of the extension with the given ID.
func (*OneByteHeaderExtension) GetIDs ¶ added in v1.7.8
func (e *OneByteHeaderExtension) GetIDs() []uint8
GetIDs returns the available IDs.
func (OneByteHeaderExtension) Marshal ¶ added in v1.7.8
func (e OneByteHeaderExtension) Marshal() ([]byte, error)
Marshal returns the extension payload.
func (OneByteHeaderExtension) MarshalSize ¶ added in v1.7.8
func (e OneByteHeaderExtension) MarshalSize() int
MarshalSize returns the size of the extension payload.
func (OneByteHeaderExtension) MarshalTo ¶ added in v1.7.8
func (e OneByteHeaderExtension) MarshalTo(buf []byte) (int, error)
MarshalTo writes the extension payload to the given buffer.
type Packet ¶
Packet represents an RTP Packet
func (Packet) MarshalSize ¶
MarshalSize returns the size of the packet once marshaled.
type Packetizer ¶
type Packetizer interface { Packetize(payload []byte, samples uint32) []*Packet EnableAbsSendTime(value int) SkipSamples(skippedSamples uint32) }
Packetizer packetizes a payload
func NewPacketizer ¶
func NewPacketizer(mtu uint16, pt uint8, ssrc uint32, payloader Payloader, sequencer Sequencer, clockRate uint32) Packetizer
NewPacketizer returns a new instance of a Packetizer for a specific payloader
type PartitionHeadChecker ¶ added in v1.2.0
PartitionHeadChecker is the interface that checks whether the packet is keyframe or not
type RawExtension ¶ added in v1.7.8
type RawExtension struct {
// contains filtered or unexported fields
}
RawExtension represents an RFC3550 header extension.
func (*RawExtension) Del ¶ added in v1.7.8
func (e *RawExtension) Del(id uint8) error
Del deletes the extension with the specified ID.
func (*RawExtension) Get ¶ added in v1.7.8
func (e *RawExtension) Get(id uint8) []byte
Get returns the payload of the extension with the given ID.
func (*RawExtension) GetIDs ¶ added in v1.7.8
func (e *RawExtension) GetIDs() []uint8
GetIDs returns the available IDs.
func (RawExtension) Marshal ¶ added in v1.7.8
func (e RawExtension) Marshal() ([]byte, error)
Marshal returns the raw extension payload.
func (RawExtension) MarshalSize ¶ added in v1.7.8
func (e RawExtension) MarshalSize() int
MarshalSize returns the size of the extension when marshaled.
func (RawExtension) MarshalTo ¶ added in v1.7.8
func (e RawExtension) MarshalTo(buf []byte) (int, error)
MarshalTo marshals the extension to the given buffer.
type Sequencer ¶
Sequencer generates sequential sequence numbers for building RTP packets
func NewFixedSequencer ¶
NewFixedSequencer returns a new sequencer starting from a specific sequence number
func NewRandomSequencer ¶
func NewRandomSequencer() Sequencer
NewRandomSequencer returns a new sequencer starting from a random sequence number
type TransportCCExtension ¶ added in v1.2.1
type TransportCCExtension struct {
TransportSequence uint16
}
TransportCCExtension is a extension payload format in https://tools.ietf.org/html/draft-holmer-rmcat-transport-wide-cc-extensions-01 0 1 2 3 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | 0xBE | 0xDE | length=1 | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ID | L=1 |transport-wide sequence number | zero padding | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
func (TransportCCExtension) Marshal ¶ added in v1.2.1
func (t TransportCCExtension) Marshal() ([]byte, error)
Marshal serializes the members to buffer
func (*TransportCCExtension) Unmarshal ¶ added in v1.2.1
func (t *TransportCCExtension) Unmarshal(rawData []byte) error
Unmarshal parses the passed byte slice and stores the result in the members
type TwoByteHeaderExtension ¶ added in v1.7.8
type TwoByteHeaderExtension struct {
// contains filtered or unexported fields
}
TwoByteHeaderExtension is an RFC8285 two-byte header extension.
func (*TwoByteHeaderExtension) Del ¶ added in v1.7.8
func (e *TwoByteHeaderExtension) Del(id uint8) error
Del deletes the extension with the specified ID.
func (*TwoByteHeaderExtension) Get ¶ added in v1.7.8
func (e *TwoByteHeaderExtension) Get(id uint8) []byte
Get returns the payload of the extension with the given ID.
func (*TwoByteHeaderExtension) GetIDs ¶ added in v1.7.8
func (e *TwoByteHeaderExtension) GetIDs() []uint8
GetIDs returns the available IDs.
func (TwoByteHeaderExtension) Marshal ¶ added in v1.7.8
func (e TwoByteHeaderExtension) Marshal() ([]byte, error)
Marshal returns the extension payload.
func (TwoByteHeaderExtension) MarshalSize ¶ added in v1.7.8
func (e TwoByteHeaderExtension) MarshalSize() int
MarshalSize returns the size of the extension payload.
func (TwoByteHeaderExtension) MarshalTo ¶ added in v1.7.8
func (e TwoByteHeaderExtension) MarshalTo(buf []byte) (int, error)
MarshalTo marshals the extension to the given buffer.
Source Files ¶
Directories ¶
Path | Synopsis |
---|---|
Package codecs implements codec specific RTP payloader/depayloaders
|
Package codecs implements codec specific RTP payloader/depayloaders |
pkg
|
|
frame
Package frame provides code to construct complete media frames from packetized media
|
Package frame provides code to construct complete media frames from packetized media |
obu
Package obu implements tools for working with the "Open Bitstream Unit"
|
Package obu implements tools for working with the "Open Bitstream Unit" |