Documentation
      ¶
    
    
  
    
  
    Index ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type Goodbye ¶
type Goodbye struct {
	// The SSRC/CSRC identifiers that are no longer active
	Sources []uint32
	// Optional text indicating the reason for leaving, e.g., "camera malfunction" or "RTP loop detected"
	Reason string
}
    The Goodbye packet indicates that one or more sources are no longer active.
type Header ¶
type Header struct {
	// If the padding bit is set, this individual RTCP packet contains
	// some additional padding octets at the end which are not part of
	// the control information but are included in the length field.
	Padding bool
	// The number of reception reports, sources contained or FMT in this packet (depending on the Type)
	Count uint8
	// The RTCP packet type for this packet
	Type PacketType
	// The length of this RTCP packet in 32-bit words minus one,
	// including the header and any padding.
	Length uint16
}
    A Header is the common header shared by all RTCP packets
type Packet ¶
Packet represents an RTCP packet, a protocol used for out-of-band statistics and control information for an RTP session
type PacketType ¶
type PacketType uint8
PacketType specifies the type of an RTCP packet
const ( TypeSenderReport PacketType = 200 // RFC 3550, 6.4.1 TypeReceiverReport PacketType = 201 // RFC 3550, 6.4.2 TypeSourceDescription PacketType = 202 // RFC 3550, 6.5 TypeGoodbye PacketType = 203 // RFC 3550, 6.6 TypeApplicationDefined PacketType = 204 // RFC 3550, 6.7 (unimplemented) TypePayloadSpecificFeedback PacketType = 206 // RFC 4585, 6.3 )
RTCP packet types registered with IANA. See: https://www.iana.org/assignments/rtp-parameters/rtp-parameters.xhtml#rtp-parameters-4
func (PacketType) String ¶
func (p PacketType) String() string
type PictureLossIndication ¶
type PictureLossIndication struct {
	// SSRC of sender
	SenderSSRC uint32
	// SSRC where the loss was experienced
	MediaSSRC uint32
}
    The PictureLossIndication packet informs the encoder about the loss of an undefined amount of coded video data belonging to one or more pictures
func (PictureLossIndication) Marshal ¶
func (p PictureLossIndication) Marshal() ([]byte, error)
Marshal encodes the PictureLossIndication in binary
func (*PictureLossIndication) Unmarshal ¶
func (p *PictureLossIndication) Unmarshal(rawPacket []byte) error
Unmarshal decodes the PictureLossIndication from binary
type Reader ¶
type Reader struct {
	// contains filtered or unexported fields
}
    A Reader reads packets from an RTCP combined packet.
func (*Reader) ReadPacket ¶
ReadPacket reads one packet from r.
It returns the parsed packet Header and a byte slice containing the encoded packet data (including the header). How the packet data is parsed depends on the Type field contained in the Header.
type ReceiverReport ¶
type ReceiverReport struct {
	// The synchronization source identifier for the originator of this RR packet.
	SSRC uint32
	// Zero or more reception report blocks depending on the number of other
	// sources heard by this sender since the last report. Each reception report
	// block conveys statistics on the reception of RTP packets from a
	// single synchronization source.
	Reports []ReceptionReport
}
    A ReceiverReport (RR) packet provides reception quality feedback for an RTP stream
func (ReceiverReport) Marshal ¶
func (r ReceiverReport) Marshal() ([]byte, error)
Marshal encodes the ReceiverReport in binary
func (*ReceiverReport) Unmarshal ¶
func (r *ReceiverReport) Unmarshal(rawPacket []byte) error
Unmarshal decodes the ReceiverReport from binary
type ReceptionReport ¶
type ReceptionReport struct {
	// The SSRC identifier of the source to which the information in this
	// reception report block pertains.
	SSRC uint32
	// The fraction of RTP data packets from source SSRC lost since the
	// previous SR or RR packet was sent, expressed as a fixed point
	// number with the binary point at the left edge of the field.
	FractionLost uint8
	// The total number of RTP data packets from source SSRC that have
	// been lost since the beginning of reception.
	TotalLost uint32
	// The low 16 bits contain the highest sequence number received in an
	// RTP data packet from source SSRC, and the most significant 16
	// bits extend that sequence number with the corresponding count of
	// sequence number cycles.
	LastSequenceNumber uint32
	// An estimate of the statistical variance of the RTP data packet
	// interarrival time, measured in timestamp units and expressed as an
	// unsigned integer.
	Jitter uint32
	// The middle 32 bits out of 64 in the NTP timestamp received as part of
	// the most recent RTCP sender report (SR) packet from source SSRC. If no
	// SR has been received yet, the field is set to zero.
	LastSenderReport uint32
	// The delay, expressed in units of 1/65536 seconds, between receiving the
	// last SR packet from source SSRC and sending this reception report block.
	// If no SR packet has been received yet from SSRC, the field is set to zero.
	Delay uint32
}
    A ReceptionReport block conveys statistics on the reception of RTP packets from a single synchronization source.
func (ReceptionReport) Marshal ¶
func (r ReceptionReport) Marshal() ([]byte, error)
Marshal encodes the ReceptionReport in binary
func (*ReceptionReport) Unmarshal ¶
func (r *ReceptionReport) Unmarshal(rawPacket []byte) error
Unmarshal decodes the ReceptionReport from binary
type SDESType ¶
type SDESType uint8
SDESType is the item type used in the RTCP SDES control packet.
const ( SDESEnd SDESType = iota // end of SDES list RFC 3550, 6.5 SDESCNAME // canonical name RFC 3550, 6.5.1 SDESName // user name RFC 3550, 6.5.2 SDESEmail // user's electronic mail address RFC 3550, 6.5.3 SDESPhone // user's phone number RFC 3550, 6.5.4 SDESLocation // geographic user location RFC 3550, 6.5.5 SDESTool // name of application or tool RFC 3550, 6.5.6 SDESNote // notice about the source RFC 3550, 6.5.7 SDESPrivate // private extensions RFC 3550, 6.5.8 (not implemented) )
RTP SDES item types registered with IANA. See: https://www.iana.org/assignments/rtp-parameters/rtp-parameters.xhtml#rtp-parameters-5
type SenderReport ¶
type SenderReport struct {
	// The synchronization source identifier for the originator of this SR packet.
	SSRC uint32
	// The wallclock time when this report was sent so that it may be used in
	// combination with timestamps returned in reception reports from other
	// receivers to measure round-trip propagation to those receivers.
	NTPTime uint64
	// Corresponds to the same time as the NTP timestamp (above), but in
	// the same units and with the same random offset as the RTP
	// timestamps in data packets. This correspondence may be used for
	// intra- and inter-media synchronization for sources whose NTP
	// timestamps are synchronized, and may be used by media-independent
	// receivers to estimate the nominal RTP clock frequency.
	RTPTime uint32
	// The total number of RTP data packets transmitted by the sender
	// since starting transmission up until the time this SR packet was
	// generated.
	PacketCount uint32
	// The total number of payload octets (i.e., not including header or
	// padding) transmitted in RTP data packets by the sender since
	// starting transmission up until the time this SR packet was
	// generated.
	OctetCount uint32
	// Zero or more reception report blocks depending on the number of other
	// sources heard by this sender since the last report. Each reception report
	// block conveys statistics on the reception of RTP packets from a
	// single synchronization source.
	Reports []ReceptionReport
}
    A SenderReport (SR) packet provides reception quality feedback for an RTP stream
func (SenderReport) Marshal ¶
func (r SenderReport) Marshal() ([]byte, error)
Marshal encodes the SenderReport in binary
func (*SenderReport) Unmarshal ¶
func (r *SenderReport) Unmarshal(rawPacket []byte) error
Unmarshal decodes the SenderReport from binary
type SourceDescription ¶
type SourceDescription struct {
	Chunks []SourceDescriptionChunk
}
    A SourceDescription (SDES) packet describes the sources in an RTP stream.
func (SourceDescription) Marshal ¶
func (s SourceDescription) Marshal() ([]byte, error)
Marshal encodes the SourceDescription in binary
func (*SourceDescription) Unmarshal ¶
func (s *SourceDescription) Unmarshal(rawPacket []byte) error
Unmarshal decodes the SourceDescription from binary
type SourceDescriptionChunk ¶
type SourceDescriptionChunk struct {
	// The source (ssrc) or contributing source (csrc) identifier this packet describes
	Source uint32
	Items  []SourceDescriptionItem
}
    A SourceDescriptionChunk contains items describing a single RTP source
func (SourceDescriptionChunk) Marshal ¶
func (s SourceDescriptionChunk) Marshal() ([]byte, error)
Marshal encodes the SourceDescriptionChunk in binary
func (*SourceDescriptionChunk) Unmarshal ¶
func (s *SourceDescriptionChunk) Unmarshal(rawPacket []byte) error
Unmarshal decodes the SourceDescriptionChunk from binary
type SourceDescriptionItem ¶
type SourceDescriptionItem struct {
	// The type identifier for this item. eg, SDESCNAME for canonical name description.
	//
	// Type zero or SDESEnd is interpreted as the end of an item list and cannot be used.
	Type SDESType
	// Text is a unicode text blob associated with the item. Its meaning varies based on the item's Type.
	Text string
}
    A SourceDescriptionItem is a part of a SourceDescription that describes a stream.
func (SourceDescriptionItem) Marshal ¶
func (s SourceDescriptionItem) Marshal() ([]byte, error)
Marshal encodes the SourceDescriptionItem in binary
func (*SourceDescriptionItem) Unmarshal ¶
func (s *SourceDescriptionItem) Unmarshal(rawPacket []byte) error
Unmarshal decodes the SourceDescriptionItem from binary