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