package rtcp

Import Path
	github.com/pion/rtcp (on go.dev)

Dependency Relation
	imports 8 packages, and imported by 7 packages

Involved Source Files application_defined.go compound_packet.go Package rtcp implements encoding and decoding of RTCP packets according to RFCs 3550 and 5506. RTCP is a sister protocol of the Real-time Transport Protocol (RTP). Its basic functionality and packet structure is defined in RFC 3550. RTCP provides out-of-band statistics and control information for an RTP session. It partners with RTP in the delivery and packaging of multimedia data, but does not transport any media data itself. The primary function of RTCP is to provide feedback on the quality of service (QoS) in media distribution by periodically sending statistics information such as transmitted octet and packet counts, packet loss, packet delay variation, and round-trip delay time to participants in a streaming multimedia session. An application may use this information to control quality of service parameters, perhaps by limiting flow, or using a different codec. Decoding RTCP packets: pkts, err := rtcp.Unmarshal(rtcpData) // ... for _, pkt := range pkts { switch p := pkt.(type) { case *rtcp.CompoundPacket: ... case *rtcp.PictureLossIndication: ... default: ... } } Encoding RTCP packets: pkt := &rtcp.PictureLossIndication{ SenderSSRC: senderSSRC, MediaSSRC: mediaSSRC } pliData, err := pkt.Marshal() // ... errors.go extended_report.go full_intra_request.go goodbye.go header.go packet.go packet_buffer.go packet_stringifier.go picture_loss_indication.go rapid_resynchronization_request.go raw_packet.go receiver_estimated_maximum_bitrate.go receiver_report.go reception_report.go rfc8888.go sender_report.go slice_loss_indication.go source_description.go transport_layer_cc.go transport_layer_nack.go util.go
Package-Level Type Names (total 51)
/* sort by: | */
ApplicationDefined represents an RTCP application-defined packet. Data []byte Name string SSRC uint32 SubType uint8 DestinationSSRC returns the SSRC value for this packet. Marshal serializes the application-defined struct into a byte slice with padding. MarshalSize returns the size of the packet once marshaled Unmarshal parses the given raw packet into an application-defined struct, handling padding. *ApplicationDefined : Packet *ApplicationDefined : PacketStatusChunk ApplicationDefined : github.com/gogo/protobuf/proto.Marshaler *ApplicationDefined : github.com/gogo/protobuf/proto.Unmarshaler ApplicationDefined : github.com/golang/protobuf/proto.Marshaler *ApplicationDefined : github.com/golang/protobuf/proto.Unmarshaler
BlockTypeType specifies the type of report in a report block String converts the Extended report block types into readable strings BlockTypeType : expvar.Var BlockTypeType : fmt.Stringer
CCFeedbackMetricBlock is a Feedback Metric Block Offset in 1/1024 seconds before Report Timestamp ECN ECN Received bool
CCFeedbackReport is a Congestion Control Feedback Report as defined in https://www.rfc-editor.org/rfc/rfc8888.html#name-rtcp-congestion-control-fee Report Blocks Basetime SSRC of sender DestinationSSRC returns an array of SSRC values that this packet refers to. Header returns the Header associated with this packet. Len returns the length of the report in bytes Marshal encodes the Congestion Control Feedback Report in binary MarshalSize returns the size of the packet once marshaled ( CCFeedbackReport) String() string Unmarshal decodes the Congestion Control Feedback Report from binary *CCFeedbackReport : Packet *CCFeedbackReport : PacketStatusChunk CCFeedbackReport : github.com/gogo/protobuf/proto.Marshaler *CCFeedbackReport : github.com/gogo/protobuf/proto.Unmarshaler CCFeedbackReport : github.com/golang/protobuf/proto.Marshaler *CCFeedbackReport : github.com/golang/protobuf/proto.Unmarshaler CCFeedbackReport : expvar.Var CCFeedbackReport : fmt.Stringer func github.com/pion/interceptor/pkg/rfc8888.(*Recorder).BuildReport(now time.Time, maxSize int) *CCFeedbackReport
CCFeedbackReportBlock is a Feedback Report Block BeginSequence uint16 SSRC of the RTP stream on which this block is reporting MetricBlocks []CCFeedbackMetricBlock ( CCFeedbackReportBlock) String() string CCFeedbackReportBlock : expvar.Var CCFeedbackReportBlock : fmt.Stringer
Chunk as defined in RFC 3611, section 4.1. These represent information about packet losses and packet duplication. They have three representations: Run Length Chunk: 0 1 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |C|R| run length | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ Bit Vector Chunk: 0 1 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |C| bit vector | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ Terminating Null Chunk: 0 1 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ RunType returns the RunType that this Chunk represents. It is only valid if ChunkType is RunLengthChunkType. ( Chunk) String() string Type returns the ChunkType that this Chunk represents Value returns the value represented in this Chunk Chunk : expvar.Var Chunk : fmt.Stringer
ChunkType enumerates the three kinds of chunks described in RFC 3611 section 4.1. func Chunk.Type() ChunkType
A CompoundPacket is a collection of RTCP packets transmitted as a single packet with the underlying protocol (for example UDP). To maximize the resolution of receiption statistics, the first Packet in a CompoundPacket must always be either a SenderReport or a ReceiverReport. This is true even if no data has been sent or received, in which case an empty ReceiverReport must be sent, and even if the only other RTCP packet in the compound packet is a Goodbye. Next, a SourceDescription containing a CNAME item must be included in each CompoundPacket to identify the source and to begin associating media for purposes such as lip-sync. Other RTCP packet types may follow in any order. Packet types may appear more than once. CNAME returns the CNAME that *must* be present in every CompoundPacket DestinationSSRC returns the synchronization sources associated with this CompoundPacket's reception report. Marshal encodes the CompoundPacket as binary. MarshalSize returns the size of the packet once marshaled ( CompoundPacket) String() string Unmarshal decodes a CompoundPacket from binary. Validate returns an error if this is not an RFC-compliant CompoundPacket. *CompoundPacket : Packet *CompoundPacket : PacketStatusChunk CompoundPacket : github.com/gogo/protobuf/proto.Marshaler *CompoundPacket : github.com/gogo/protobuf/proto.Unmarshaler CompoundPacket : github.com/golang/protobuf/proto.Marshaler *CompoundPacket : github.com/golang/protobuf/proto.Unmarshaler CompoundPacket : expvar.Var CompoundPacket : fmt.Stringer
DLRRReport encodes a single report inside a DLRRReportBlock. DLRR uint32 LastRR uint32 SSRC uint32
DLRRReportBlock encodes a DLRR Report Block as described in RFC 3611 section 4.5. 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 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | BT=5 | reserved | block length | +=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+ | SSRC_1 (SSRC of first receiver) | sub- +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ block | last RR (LRR) | 1 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | delay since last RR (DLRR) | +=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+ | SSRC_2 (SSRC of second receiver) | sub- +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ block : ... : 2 +=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+ Reports []DLRRReport XRHeader XRHeader XRHeader.BlockLength uint16 XRHeader.BlockType BlockTypeType XRHeader.TypeSpecific TypeSpecificField DestinationSSRC returns an array of SSRC values that this report block refers to. *DLRRReportBlock : ReportBlock
DuplicateRLEReportBlock is used to report information about packet duplication, as described in RFC 3611, section 4.1 BeginSeq uint16 Chunks []Chunk EndSeq uint16 SSRC uint32 T uint8 XRHeader XRHeader XRHeader.BlockLength uint16 XRHeader.BlockType BlockTypeType XRHeader.TypeSpecific TypeSpecificField DestinationSSRC returns an array of SSRC values that this report block refers to. *DuplicateRLEReportBlock : ReportBlock
ECN represents the two ECN bits const ECNCE const ECNECT0 const ECNECT1 const ECNNonECT
The ExtendedReport packet is an Implementation of RTCP Extended Reports defined in RFC 3611. It is used to convey detailed information about an RTP stream. Each packet contains one or more report blocks, each of which conveys a different kind of information. 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 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |V=2|P|reserved | PT=XR=207 | length | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | SSRC | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ : report blocks : +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ Reports []ReportBlock SenderSSRC uint32 DestinationSSRC returns an array of SSRC values that this packet refers to. Marshal encodes the ExtendedReport in binary MarshalSize returns the size of the packet once marshaled (*ExtendedReport) String() string Unmarshal decodes the ExtendedReport from binary *ExtendedReport : Packet *ExtendedReport : PacketStatusChunk ExtendedReport : github.com/gogo/protobuf/proto.Marshaler *ExtendedReport : github.com/gogo/protobuf/proto.Unmarshaler ExtendedReport : github.com/golang/protobuf/proto.Marshaler *ExtendedReport : github.com/golang/protobuf/proto.Unmarshaler *ExtendedReport : expvar.Var *ExtendedReport : fmt.Stringer
A FIREntry is a (SSRC, seqno) pair, as carried by FullIntraRequest. SSRC uint32 SequenceNumber uint8
The FullIntraRequest packet is used to reliably request an Intra frame in a video stream. See RFC 5104 Section 3.5.1. This is not for loss recovery, which should use PictureLossIndication (PLI) instead. FIR []FIREntry MediaSSRC uint32 SenderSSRC uint32 DestinationSSRC returns an array of SSRC values that this packet refers to. Header returns the Header associated with this packet. Marshal encodes the FullIntraRequest MarshalSize returns the size of the packet once marshaled (*FullIntraRequest) String() string Unmarshal decodes the TransportLayerNack *FullIntraRequest : Packet *FullIntraRequest : PacketStatusChunk FullIntraRequest : github.com/gogo/protobuf/proto.Marshaler *FullIntraRequest : github.com/gogo/protobuf/proto.Unmarshaler FullIntraRequest : github.com/golang/protobuf/proto.Marshaler *FullIntraRequest : github.com/golang/protobuf/proto.Unmarshaler *FullIntraRequest : expvar.Var *FullIntraRequest : fmt.Stringer
The Goodbye packet indicates that one or more sources are no longer active. Optional text indicating the reason for leaving, e.g., "camera malfunction" or "RTP loop detected" The SSRC/CSRC identifiers that are no longer active DestinationSSRC returns an array of SSRC values that this packet refers to. Header returns the Header associated with this packet. Marshal encodes the Goodbye packet in binary MarshalSize returns the size of the packet once marshaled ( Goodbye) String() string Unmarshal decodes the Goodbye packet from binary *Goodbye : Packet *Goodbye : PacketStatusChunk Goodbye : github.com/gogo/protobuf/proto.Marshaler *Goodbye : github.com/gogo/protobuf/proto.Unmarshaler Goodbye : github.com/golang/protobuf/proto.Marshaler *Goodbye : github.com/golang/protobuf/proto.Unmarshaler Goodbye : expvar.Var Goodbye : fmt.Stringer
A Header is the common header shared by all RTCP packets The number of reception reports, sources contained or FMT in this packet (depending on the Type) The length of this RTCP packet in 32-bit words minus one, including the header and any padding. 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. The RTCP packet type for this packet Marshal encodes the Header in binary Unmarshal decodes the Header from binary *Header : PacketStatusChunk Header : github.com/gogo/protobuf/proto.Marshaler *Header : github.com/gogo/protobuf/proto.Unmarshaler Header : github.com/golang/protobuf/proto.Marshaler *Header : github.com/golang/protobuf/proto.Unmarshaler func (*CCFeedbackReport).Header() Header func (*FullIntraRequest).Header() Header func (*Goodbye).Header() Header func (*PictureLossIndication).Header() Header func (*RapidResynchronizationRequest).Header() Header func RawPacket.Header() Header func (*ReceiverEstimatedMaximumBitrate).Header() Header func (*ReceiverReport).Header() Header func (*SenderReport).Header() Header func (*SliceLossIndication).Header() Header func (*SourceDescription).Header() Header func (*TransportLayerNack).Header() Header func github.com/pion/srtp/v3.(*ReadStreamSRTCP).ReadRTCP(buf []byte) (int, *Header, error) func github.com/pion/srtp/v3.(*Context).DecryptRTCP(dst, encrypted []byte, header *Header) ([]byte, error) func github.com/pion/srtp/v3.(*Context).EncryptRTCP(dst, decrypted []byte, header *Header) ([]byte, error) func github.com/pion/srtp/v3.(*WriteStreamSRTCP).WriteRTCP(header *Header, payload []byte) (int, error)
LossRLEReportBlock is used to report information about packet losses, as described in RFC 3611, section 4.1 BeginSeq uint16 Chunks []Chunk EndSeq uint16 SSRC uint32 T uint8 XRHeader XRHeader XRHeader.BlockLength uint16 XRHeader.BlockType BlockTypeType XRHeader.TypeSpecific TypeSpecificField DestinationSSRC returns an array of SSRC values that this report block refers to. *LossRLEReportBlock : ReportBlock
NackPair is a wire-representation of a collection of Lost RTP packets Bitmask of following lost packets ID of lost packets PacketList returns a list of Nack'd packets that's referenced by a NackPair Range calls f sequentially for each sequence number covered by n. If f returns false, Range stops the iteration. func NackPairsFromSequenceNumbers(sequenceNumbers []uint16) (pairs []NackPair)
Packet represents an RTCP packet, a protocol used for out-of-band statistics and control information for an RTP session DestinationSSRC returns an array of SSRC values that this packet refers to. ( Packet) Marshal() ([]byte, error) ( Packet) MarshalSize() int ( Packet) Unmarshal(rawPacket []byte) error *ApplicationDefined *CCFeedbackReport *CompoundPacket *ExtendedReport *FullIntraRequest *Goodbye *PictureLossIndication *RapidResynchronizationRequest *RawPacket *ReceiverEstimatedMaximumBitrate *ReceiverReport *SenderReport *SliceLossIndication *SourceDescription *TransportLayerCC *TransportLayerNack Packet : PacketStatusChunk Packet : github.com/gogo/protobuf/proto.Marshaler Packet : github.com/gogo/protobuf/proto.Unmarshaler Packet : github.com/golang/protobuf/proto.Marshaler Packet : github.com/golang/protobuf/proto.Unmarshaler func Unmarshal(rawData []byte) ([]Packet, error) func github.com/pion/interceptor.Attributes.GetRTCPPackets(raw []byte) ([]Packet, error) func github.com/pion/interceptor/pkg/twcc.(*Recorder).BuildFeedbackPacket() []Packet func github.com/pion/webrtc/v4.(*RTPReceiver).ReadRTCP() ([]Packet, interceptor.Attributes, error) func github.com/pion/webrtc/v4.(*RTPReceiver).ReadSimulcastRTCP(rid string) ([]Packet, interceptor.Attributes, error) func github.com/pion/webrtc/v4.(*RTPSender).ReadRTCP() ([]Packet, interceptor.Attributes, error) func github.com/pion/webrtc/v4.(*RTPSender).ReadSimulcastRTCP(rid string) ([]Packet, interceptor.Attributes, error) func Marshal(packets []Packet) ([]byte, error) func github.com/pion/interceptor.RTCPWriter.Write(pkts []Packet, attributes interceptor.Attributes) (int, error) func github.com/pion/interceptor.RTCPWriterFunc.Write(pkts []Packet, attributes interceptor.Attributes) (int, error) func github.com/pion/webrtc/v4.(*DTLSTransport).WriteRTCP(pkts []Packet) (int, error) func github.com/pion/webrtc/v4.(*PeerConnection).WriteRTCP(pkts []Packet) error
PacketBitmap shouldn't be used like a normal integral, so it's type is masked here. Access it with PacketList().
PacketReceiptTimesReportBlock represents a Packet Receipt Times report block, as described in RFC 3611 section 4.3. 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 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | BT=3 | rsvd. | T | block length | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | SSRC of source | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | begin_seq | end_seq | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Receipt time of packet begin_seq | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Receipt time of packet (begin_seq + 1) mod 65536 | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ : ... : +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Receipt time of packet (end_seq - 1) mod 65536 | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ BeginSeq uint16 EndSeq uint16 ReceiptTime []uint32 SSRC uint32 T uint8 XRHeader XRHeader XRHeader.BlockLength uint16 XRHeader.BlockType BlockTypeType XRHeader.TypeSpecific TypeSpecificField DestinationSSRC returns an array of SSRC values that this report block refers to. *PacketReceiptTimesReportBlock : ReportBlock
PacketStatusChunk has two kinds: RunLengthChunk and StatusVectorChunk ( PacketStatusChunk) Marshal() ([]byte, error) ( PacketStatusChunk) Unmarshal(rawPacket []byte) error *ApplicationDefined *CCFeedbackReport *CompoundPacket *ExtendedReport *FullIntraRequest *Goodbye *Header Packet (interface) *PictureLossIndication *RapidResynchronizationRequest *RawPacket *ReceiverEstimatedMaximumBitrate *ReceiverReport *ReceptionReport *RecvDelta *RunLengthChunk *SenderReport *SliceLossIndication *SourceDescription *SourceDescriptionChunk *SourceDescriptionItem *StatusVectorChunk *TransportLayerCC *TransportLayerNack *github.com/pion/dtls/v2/pkg/protocol.ApplicationData *github.com/pion/dtls/v2/pkg/protocol.ChangeCipherSpec github.com/pion/dtls/v2/pkg/protocol.Content (interface) *github.com/pion/dtls/v2/pkg/protocol/alert.Alert *github.com/pion/dtls/v2/pkg/protocol/extension.ALPN github.com/pion/dtls/v2/pkg/protocol/extension.Extension (interface) *github.com/pion/dtls/v2/pkg/protocol/extension.RenegotiationInfo *github.com/pion/dtls/v2/pkg/protocol/extension.ServerName *github.com/pion/dtls/v2/pkg/protocol/extension.SupportedEllipticCurves *github.com/pion/dtls/v2/pkg/protocol/extension.SupportedPointFormats *github.com/pion/dtls/v2/pkg/protocol/extension.SupportedSignatureAlgorithms *github.com/pion/dtls/v2/pkg/protocol/extension.UseExtendedMasterSecret *github.com/pion/dtls/v2/pkg/protocol/extension.UseSRTP *github.com/pion/dtls/v2/pkg/protocol/handshake.Handshake *github.com/pion/dtls/v2/pkg/protocol/handshake.Header github.com/pion/dtls/v2/pkg/protocol/handshake.Message (interface) *github.com/pion/dtls/v2/pkg/protocol/handshake.MessageCertificate *github.com/pion/dtls/v2/pkg/protocol/handshake.MessageCertificateRequest *github.com/pion/dtls/v2/pkg/protocol/handshake.MessageCertificateVerify *github.com/pion/dtls/v2/pkg/protocol/handshake.MessageClientHello *github.com/pion/dtls/v2/pkg/protocol/handshake.MessageClientKeyExchange *github.com/pion/dtls/v2/pkg/protocol/handshake.MessageFinished *github.com/pion/dtls/v2/pkg/protocol/handshake.MessageHelloVerifyRequest *github.com/pion/dtls/v2/pkg/protocol/handshake.MessageServerHello *github.com/pion/dtls/v2/pkg/protocol/handshake.MessageServerHelloDone *github.com/pion/dtls/v2/pkg/protocol/handshake.MessageServerKeyExchange *github.com/pion/dtls/v2/pkg/protocol/recordlayer.Header *github.com/pion/dtls/v2/pkg/protocol/recordlayer.RecordLayer *github.com/pion/dtls/v3/pkg/protocol.ApplicationData *github.com/pion/dtls/v3/pkg/protocol.ChangeCipherSpec github.com/pion/dtls/v3/pkg/protocol.Content (interface) *github.com/pion/dtls/v3/pkg/protocol/alert.Alert *github.com/pion/dtls/v3/pkg/protocol/extension.ALPN *github.com/pion/dtls/v3/pkg/protocol/extension.ConnectionID github.com/pion/dtls/v3/pkg/protocol/extension.Extension (interface) *github.com/pion/dtls/v3/pkg/protocol/extension.RenegotiationInfo *github.com/pion/dtls/v3/pkg/protocol/extension.ServerName *github.com/pion/dtls/v3/pkg/protocol/extension.SupportedEllipticCurves *github.com/pion/dtls/v3/pkg/protocol/extension.SupportedPointFormats *github.com/pion/dtls/v3/pkg/protocol/extension.SupportedSignatureAlgorithms *github.com/pion/dtls/v3/pkg/protocol/extension.UseExtendedMasterSecret *github.com/pion/dtls/v3/pkg/protocol/extension.UseSRTP *github.com/pion/dtls/v3/pkg/protocol/handshake.Handshake *github.com/pion/dtls/v3/pkg/protocol/handshake.Header github.com/pion/dtls/v3/pkg/protocol/handshake.Message (interface) *github.com/pion/dtls/v3/pkg/protocol/handshake.MessageCertificate *github.com/pion/dtls/v3/pkg/protocol/handshake.MessageCertificateRequest *github.com/pion/dtls/v3/pkg/protocol/handshake.MessageCertificateVerify *github.com/pion/dtls/v3/pkg/protocol/handshake.MessageClientHello *github.com/pion/dtls/v3/pkg/protocol/handshake.MessageClientKeyExchange *github.com/pion/dtls/v3/pkg/protocol/handshake.MessageFinished *github.com/pion/dtls/v3/pkg/protocol/handshake.MessageHelloVerifyRequest *github.com/pion/dtls/v3/pkg/protocol/handshake.MessageServerHello *github.com/pion/dtls/v3/pkg/protocol/handshake.MessageServerHelloDone *github.com/pion/dtls/v3/pkg/protocol/handshake.MessageServerKeyExchange *github.com/pion/dtls/v3/pkg/protocol/recordlayer.Header *github.com/pion/dtls/v3/pkg/protocol/recordlayer.InnerPlaintext *github.com/pion/dtls/v3/pkg/protocol/recordlayer.RecordLayer *github.com/pion/rtp.AbsCaptureTimeExtension *github.com/pion/rtp.AbsSendTimeExtension *github.com/pion/rtp.AudioLevelExtension *github.com/pion/rtp.Packet *github.com/pion/rtp.PlayoutDelayExtension *github.com/pion/rtp.TransportCCExtension *github.com/pion/sdp/v3.SessionDescription *github.com/libp2p/go-libp2p/core/peer.ID github.com/libp2p/go-libp2p-pubsub.Message *github.com/libp2p/go-libp2p-pubsub.RPC *github.com/libp2p/go-libp2p-pubsub/pb.ControlGraft *github.com/libp2p/go-libp2p-pubsub/pb.ControlIDontWant *github.com/libp2p/go-libp2p-pubsub/pb.ControlIHave *github.com/libp2p/go-libp2p-pubsub/pb.ControlIWant *github.com/libp2p/go-libp2p-pubsub/pb.ControlMessage *github.com/libp2p/go-libp2p-pubsub/pb.ControlPrune *github.com/libp2p/go-libp2p-pubsub/pb.Message *github.com/libp2p/go-libp2p-pubsub/pb.PeerInfo *github.com/libp2p/go-libp2p-pubsub/pb.RPC *github.com/libp2p/go-libp2p-pubsub/pb.RPC_SubOpts *github.com/libp2p/go-libp2p-pubsub/pb.TraceEvent *github.com/libp2p/go-libp2p-pubsub/pb.TraceEvent_AddPeer *github.com/libp2p/go-libp2p-pubsub/pb.TraceEvent_ControlGraftMeta *github.com/libp2p/go-libp2p-pubsub/pb.TraceEvent_ControlIDontWantMeta *github.com/libp2p/go-libp2p-pubsub/pb.TraceEvent_ControlIHaveMeta *github.com/libp2p/go-libp2p-pubsub/pb.TraceEvent_ControlIWantMeta *github.com/libp2p/go-libp2p-pubsub/pb.TraceEvent_ControlMeta *github.com/libp2p/go-libp2p-pubsub/pb.TraceEvent_ControlPruneMeta *github.com/libp2p/go-libp2p-pubsub/pb.TraceEvent_DeliverMessage *github.com/libp2p/go-libp2p-pubsub/pb.TraceEvent_DropRPC *github.com/libp2p/go-libp2p-pubsub/pb.TraceEvent_DuplicateMessage *github.com/libp2p/go-libp2p-pubsub/pb.TraceEvent_Graft *github.com/libp2p/go-libp2p-pubsub/pb.TraceEvent_Join *github.com/libp2p/go-libp2p-pubsub/pb.TraceEvent_Leave *github.com/libp2p/go-libp2p-pubsub/pb.TraceEvent_MessageMeta *github.com/libp2p/go-libp2p-pubsub/pb.TraceEvent_Prune *github.com/libp2p/go-libp2p-pubsub/pb.TraceEvent_PublishMessage *github.com/libp2p/go-libp2p-pubsub/pb.TraceEvent_RecvRPC *github.com/libp2p/go-libp2p-pubsub/pb.TraceEvent_RejectMessage *github.com/libp2p/go-libp2p-pubsub/pb.TraceEvent_RemovePeer *github.com/libp2p/go-libp2p-pubsub/pb.TraceEvent_RPCMeta *github.com/libp2p/go-libp2p-pubsub/pb.TraceEvent_SendRPC *github.com/libp2p/go-libp2p-pubsub/pb.TraceEvent_SubMeta *github.com/libp2p/go-libp2p-pubsub/pb.TraceEventBatch PacketStatusChunk : github.com/gogo/protobuf/proto.Marshaler PacketStatusChunk : github.com/gogo/protobuf/proto.Unmarshaler PacketStatusChunk : github.com/golang/protobuf/proto.Marshaler PacketStatusChunk : github.com/golang/protobuf/proto.Unmarshaler
PacketType specifies the type of an RTCP packet ( PacketType) String() string PacketType : expvar.Var PacketType : fmt.Stringer const TypeApplicationDefined const TypeExtendedReport const TypeGoodbye const TypePayloadSpecificFeedback const TypeReceiverReport const TypeSenderReport const TypeSourceDescription const TypeTransportSpecificFeedback
The PictureLossIndication packet informs the encoder about the loss of an undefined amount of coded video data belonging to one or more pictures SSRC where the loss was experienced SSRC of sender DestinationSSRC returns an array of SSRC values that this packet refers to. Header returns the Header associated with this packet. Marshal encodes the PictureLossIndication in binary MarshalSize returns the size of the packet once marshaled (*PictureLossIndication) String() string Unmarshal decodes the PictureLossIndication from binary *PictureLossIndication : Packet *PictureLossIndication : PacketStatusChunk PictureLossIndication : github.com/gogo/protobuf/proto.Marshaler *PictureLossIndication : github.com/gogo/protobuf/proto.Unmarshaler PictureLossIndication : github.com/golang/protobuf/proto.Marshaler *PictureLossIndication : github.com/golang/protobuf/proto.Unmarshaler *PictureLossIndication : expvar.Var *PictureLossIndication : fmt.Stringer
RapidResynchronisationRequest is provided as RFC 6051 spells resynchronization with an s. We provide both names to be consistent with other RFCs which spell resynchronization with a z.
The RapidResynchronizationRequest packet informs the encoder about the loss of an undefined amount of coded video data belonging to one or more pictures SSRC where the loss was experienced SSRC of sender DestinationSSRC returns an array of SSRC values that this packet refers to. Header returns the Header associated with this packet. Marshal encodes the RapidResynchronizationRequest in binary MarshalSize returns the size of the packet once marshaled (*RapidResynchronizationRequest) String() string Unmarshal decodes the RapidResynchronizationRequest from binary *RapidResynchronizationRequest : Packet *RapidResynchronizationRequest : PacketStatusChunk RapidResynchronizationRequest : github.com/gogo/protobuf/proto.Marshaler *RapidResynchronizationRequest : github.com/gogo/protobuf/proto.Unmarshaler RapidResynchronizationRequest : github.com/golang/protobuf/proto.Marshaler *RapidResynchronizationRequest : github.com/golang/protobuf/proto.Unmarshaler *RapidResynchronizationRequest : expvar.Var *RapidResynchronizationRequest : fmt.Stringer
RawPacket represents an unparsed RTCP packet. It's returned by Unmarshal when a packet with an unknown type is encountered. DestinationSSRC returns an array of SSRC values that this packet refers to. Header returns the Header associated with this packet. Marshal encodes the packet in binary. MarshalSize returns the size of the packet once marshaled ( RawPacket) String() string Unmarshal decodes the packet from binary. *RawPacket : Packet *RawPacket : PacketStatusChunk RawPacket : github.com/gogo/protobuf/proto.Marshaler *RawPacket : github.com/gogo/protobuf/proto.Unmarshaler RawPacket : github.com/golang/protobuf/proto.Marshaler *RawPacket : github.com/golang/protobuf/proto.Unmarshaler RawPacket : expvar.Var RawPacket : fmt.Stringer
ReceiverEstimatedMaximumBitrate contains the receiver's estimated maximum bitrate. see: https://tools.ietf.org/html/draft-alvestrand-rmcat-remb-03 Estimated maximum bitrate SSRC entries which this packet applies to SSRC of sender DestinationSSRC returns an array of SSRC values that this packet refers to. Header returns the Header associated with this packet. Marshal serializes the packet and returns a byte slice. MarshalSize returns the size of the packet once marshaled MarshalTo serializes the packet to the given byte slice. String prints the REMB packet in a human-readable format. Unmarshal reads a REMB packet from the given byte slice. *ReceiverEstimatedMaximumBitrate : Packet *ReceiverEstimatedMaximumBitrate : PacketStatusChunk ReceiverEstimatedMaximumBitrate : github.com/gogo/protobuf/proto.Marshaler *ReceiverEstimatedMaximumBitrate : github.com/gogo/protobuf/proto.Unmarshaler ReceiverEstimatedMaximumBitrate : github.com/golang/protobuf/proto.Marshaler *ReceiverEstimatedMaximumBitrate : github.com/golang/protobuf/proto.Unmarshaler *ReceiverEstimatedMaximumBitrate : expvar.Var *ReceiverEstimatedMaximumBitrate : fmt.Stringer
ReceiverReferenceTimeReportBlock encodes a Receiver Reference Time report block as described in RFC 3611 section 4.4. 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 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | BT=4 | reserved | block length = 2 | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | NTP timestamp, most significant word | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | NTP timestamp, least significant word | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ NTPTimestamp uint64 XRHeader XRHeader XRHeader.BlockLength uint16 XRHeader.BlockType BlockTypeType XRHeader.TypeSpecific TypeSpecificField DestinationSSRC returns an array of SSRC values that this report block refers to. *ReceiverReferenceTimeReportBlock : ReportBlock
A ReceiverReport (RR) packet provides reception quality feedback for an RTP stream Extension contains additional, payload-specific information that needs to be reported regularly about the receiver. 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. The synchronization source identifier for the originator of this RR packet. DestinationSSRC returns an array of SSRC values that this packet refers to. Header returns the Header associated with this packet. Marshal encodes the ReceiverReport in binary MarshalSize returns the size of the packet once marshaled ( ReceiverReport) String() string Unmarshal decodes the ReceiverReport from binary *ReceiverReport : Packet *ReceiverReport : PacketStatusChunk ReceiverReport : github.com/gogo/protobuf/proto.Marshaler *ReceiverReport : github.com/gogo/protobuf/proto.Unmarshaler ReceiverReport : github.com/golang/protobuf/proto.Marshaler *ReceiverReport : github.com/golang/protobuf/proto.Unmarshaler ReceiverReport : expvar.Var ReceiverReport : fmt.Stringer
A ReceptionReport block conveys statistics on the reception of RTP packets from a single synchronization source. 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. 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. An estimate of the statistical variance of the RTP data packet interarrival time, measured in timestamp units and expressed as an unsigned integer. 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. 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. The SSRC identifier of the source to which the information in this reception report block pertains. The total number of RTP data packets from source SSRC that have been lost since the beginning of reception. Marshal encodes the ReceptionReport in binary Unmarshal decodes the ReceptionReport from binary *ReceptionReport : PacketStatusChunk ReceptionReport : github.com/gogo/protobuf/proto.Marshaler *ReceptionReport : github.com/gogo/protobuf/proto.Unmarshaler ReceptionReport : github.com/golang/protobuf/proto.Marshaler *ReceptionReport : github.com/golang/protobuf/proto.Unmarshaler
RecvDelta are represented as multiples of 250us small delta is 1 byte: [0,63.75]ms = [0, 63750]us = [0, 255]*250us big delta is 2 bytes: [-8192.0, 8191.75]ms = [-8192000, 8191750]us = [-32768, 32767]*250us https://tools.ietf.org/html/draft-holmer-rmcat-transport-wide-cc-extensions-01#section-3.1.5 us Type uint16 Marshal .. Unmarshal .. *RecvDelta : PacketStatusChunk RecvDelta : github.com/gogo/protobuf/proto.Marshaler *RecvDelta : github.com/gogo/protobuf/proto.Unmarshaler RecvDelta : github.com/golang/protobuf/proto.Marshaler *RecvDelta : github.com/golang/protobuf/proto.Unmarshaler
ReportBlock represents a single report within an ExtendedReport packet ( ReportBlock) DestinationSSRC() []uint32 *DLRRReportBlock *DuplicateRLEReportBlock *LossRLEReportBlock *PacketReceiptTimesReportBlock *ReceiverReferenceTimeReportBlock *StatisticsSummaryReportBlock *UnknownReportBlock *VoIPMetricsReportBlock
RunLengthChunk T=TypeTCCRunLengthChunk 0 1 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |T| S | Run Length | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ PacketStatusChunk PacketStatusChunk S: type of packet status kind: TypeTCCPacketNotReceived or... RunLength: count of S T = TypeTCCRunLengthChunk Marshal .. Unmarshal .. *RunLengthChunk : PacketStatusChunk RunLengthChunk : github.com/gogo/protobuf/proto.Marshaler *RunLengthChunk : github.com/gogo/protobuf/proto.Unmarshaler RunLengthChunk : github.com/golang/protobuf/proto.Marshaler *RunLengthChunk : github.com/golang/protobuf/proto.Unmarshaler
SDESType is the item type used in the RTCP SDES control packet. ( SDESType) String() string SDESType : expvar.Var SDESType : fmt.Stringer const SDESCNAME const SDESEmail const SDESEnd const SDESLocation const SDESName const SDESNote const SDESPhone const SDESPrivate const SDESTool
A SenderReport (SR) packet provides reception quality feedback for an RTP stream 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. 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. The total number of RTP data packets transmitted by the sender since starting transmission up until the time this SR packet was generated. ProfileExtensions contains additional, payload-specific information that needs to be reported regularly about the sender. 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. 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. The synchronization source identifier for the originator of this SR packet. DestinationSSRC returns an array of SSRC values that this packet refers to. Header returns the Header associated with this packet. Marshal encodes the SenderReport in binary MarshalSize returns the size of the packet once marshaled ( SenderReport) String() string Unmarshal decodes the SenderReport from binary *SenderReport : Packet *SenderReport : PacketStatusChunk SenderReport : github.com/gogo/protobuf/proto.Marshaler *SenderReport : github.com/gogo/protobuf/proto.Unmarshaler SenderReport : github.com/golang/protobuf/proto.Marshaler *SenderReport : github.com/golang/protobuf/proto.Unmarshaler SenderReport : expvar.Var SenderReport : fmt.Stringer
The SliceLossIndication packet informs the encoder about the loss of a picture slice SSRC of the media source SLI []SLIEntry SSRC of sender DestinationSSRC returns an array of SSRC values that this packet refers to. Header returns the Header associated with this packet. Marshal encodes the SliceLossIndication in binary MarshalSize returns the size of the packet once marshaled (*SliceLossIndication) String() string Unmarshal decodes the SliceLossIndication from binary *SliceLossIndication : Packet *SliceLossIndication : PacketStatusChunk SliceLossIndication : github.com/gogo/protobuf/proto.Marshaler *SliceLossIndication : github.com/gogo/protobuf/proto.Unmarshaler SliceLossIndication : github.com/golang/protobuf/proto.Marshaler *SliceLossIndication : github.com/golang/protobuf/proto.Unmarshaler *SliceLossIndication : expvar.Var *SliceLossIndication : fmt.Stringer
SLIEntry represents a single entry to the SLI packet's list of lost slices. ID of first lost slice Number of lost slices ID of related picture
A SourceDescription (SDES) packet describes the sources in an RTP stream. Chunks []SourceDescriptionChunk DestinationSSRC returns an array of SSRC values that this packet refers to. Header returns the Header associated with this packet. Marshal encodes the SourceDescription in binary MarshalSize returns the size of the packet once marshaled (*SourceDescription) String() string Unmarshal decodes the SourceDescription from binary *SourceDescription : Packet *SourceDescription : PacketStatusChunk SourceDescription : github.com/gogo/protobuf/proto.Marshaler *SourceDescription : github.com/gogo/protobuf/proto.Unmarshaler SourceDescription : github.com/golang/protobuf/proto.Marshaler *SourceDescription : github.com/golang/protobuf/proto.Unmarshaler *SourceDescription : expvar.Var *SourceDescription : fmt.Stringer func NewCNAMESourceDescription(ssrc uint32, cname string) *SourceDescription
A SourceDescriptionChunk contains items describing a single RTP source Items []SourceDescriptionItem The source (ssrc) or contributing source (csrc) identifier this packet describes Marshal encodes the SourceDescriptionChunk in binary Unmarshal decodes the SourceDescriptionChunk from binary *SourceDescriptionChunk : PacketStatusChunk SourceDescriptionChunk : github.com/gogo/protobuf/proto.Marshaler *SourceDescriptionChunk : github.com/gogo/protobuf/proto.Unmarshaler SourceDescriptionChunk : github.com/golang/protobuf/proto.Marshaler *SourceDescriptionChunk : github.com/golang/protobuf/proto.Unmarshaler
A SourceDescriptionItem is a part of a SourceDescription that describes a stream. Text is a unicode text blob associated with the item. Its meaning varies based on the item's Type. 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. Len returns the length of the SourceDescriptionItem when encoded as binary. Marshal encodes the SourceDescriptionItem in binary Unmarshal decodes the SourceDescriptionItem from binary *SourceDescriptionItem : PacketStatusChunk SourceDescriptionItem : github.com/gogo/protobuf/proto.Marshaler *SourceDescriptionItem : github.com/gogo/protobuf/proto.Unmarshaler SourceDescriptionItem : github.com/golang/protobuf/proto.Marshaler *SourceDescriptionItem : github.com/golang/protobuf/proto.Unmarshaler
StatisticsSummaryReportBlock encodes a Statistics Summary Report Block as described in RFC 3611, section 4.6. 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 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | BT=6 |L|D|J|ToH|rsvd.| block length = 9 | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | SSRC of source | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | begin_seq | end_seq | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | lost_packets | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | dup_packets | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | min_jitter | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | max_jitter | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | mean_jitter | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | dev_jitter | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | min_ttl_or_hl | max_ttl_or_hl |mean_ttl_or_hl | dev_ttl_or_hl | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ BeginSeq uint16 DevJitter uint32 DevTTLOrHL uint8 DupPackets uint32 DuplicateReports bool EndSeq uint16 JitterReports bool LossReports bool LostPackets uint32 MaxJitter uint32 MaxTTLOrHL uint8 MeanJitter uint32 MeanTTLOrHL uint8 MinJitter uint32 MinTTLOrHL uint8 SSRC uint32 TTLorHopLimit TTLorHopLimitType XRHeader XRHeader XRHeader.BlockLength uint16 XRHeader.BlockType BlockTypeType XRHeader.TypeSpecific TypeSpecificField DestinationSSRC returns an array of SSRC values that this report block refers to. *StatisticsSummaryReportBlock : ReportBlock
StatusVectorChunk T=typeStatusVecotrChunk 0 1 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |T|S| symbol list | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ PacketStatusChunk PacketStatusChunk when SymbolSize = TypeTCCSymbolSizeOneBit, SymbolList is 14*1bit: TypeTCCSymbolListPacketReceived or TypeTCCSymbolListPacketNotReceived when SymbolSize = TypeTCCSymbolSizeTwoBit, SymbolList is 7*2bit: TypeTCCPacketNotReceived TypeTCCPacketReceivedSmallDelta TypeTCCPacketReceivedLargeDelta or typePacketReserved TypeTCCSymbolSizeOneBit or TypeTCCSymbolSizeTwoBit T = TypeTCCRunLengthChunk Marshal .. Unmarshal .. *StatusVectorChunk : PacketStatusChunk StatusVectorChunk : github.com/gogo/protobuf/proto.Marshaler *StatusVectorChunk : github.com/gogo/protobuf/proto.Unmarshaler StatusVectorChunk : github.com/golang/protobuf/proto.Marshaler *StatusVectorChunk : github.com/golang/protobuf/proto.Unmarshaler
TransportLayerCC for sender-BWE https://tools.ietf.org/html/draft-holmer-rmcat-transport-wide-cc-extensions-01#page-5 Transport wide sequence of rtp extension FbPktCount header SSRC of the media source PacketChunks PacketStatusCount RecvDeltas ReferenceTime SSRC of sender DestinationSSRC returns an array of SSRC values that this packet refers to. Len return total bytes with padding Marshal encodes the TransportLayerCC in binary MarshalSize returns the size of the packet once marshaled ( TransportLayerCC) String() string Unmarshal .. *TransportLayerCC : Packet *TransportLayerCC : PacketStatusChunk TransportLayerCC : github.com/gogo/protobuf/proto.Marshaler *TransportLayerCC : github.com/gogo/protobuf/proto.Unmarshaler TransportLayerCC : github.com/golang/protobuf/proto.Marshaler *TransportLayerCC : github.com/golang/protobuf/proto.Unmarshaler TransportLayerCC : expvar.Var TransportLayerCC : fmt.Stringer
The TransportLayerNack packet informs the encoder about the loss of a transport packet IETF RFC 4585, Section 6.2.1 https://tools.ietf.org/html/rfc4585#section-6.2.1 SSRC of the media source Nacks []NackPair SSRC of sender DestinationSSRC returns an array of SSRC values that this packet refers to. Header returns the Header associated with this packet. Marshal encodes the TransportLayerNack in binary MarshalSize returns the size of the packet once marshaled ( TransportLayerNack) String() string Unmarshal decodes the TransportLayerNack from binary *TransportLayerNack : Packet *TransportLayerNack : PacketStatusChunk TransportLayerNack : github.com/gogo/protobuf/proto.Marshaler *TransportLayerNack : github.com/gogo/protobuf/proto.Unmarshaler TransportLayerNack : github.com/golang/protobuf/proto.Marshaler *TransportLayerNack : github.com/golang/protobuf/proto.Unmarshaler TransportLayerNack : expvar.Var TransportLayerNack : fmt.Stringer
TTLorHopLimitType encodes values for the ToH field in a StatisticsSummaryReportBlock ( TTLorHopLimitType) String() string TTLorHopLimitType : expvar.Var TTLorHopLimitType : fmt.Stringer
TypeSpecificField as described in RFC 3611 section 4.5. In typical cases, users of ExtendedReports shouldn't need to access this, and should instead use the corresponding fields in the actual report blocks themselves.
UnknownReportBlock is used to store bytes for any report block that has an unknown Report Block Type. Bytes []byte XRHeader XRHeader XRHeader.BlockLength uint16 XRHeader.BlockType BlockTypeType XRHeader.TypeSpecific TypeSpecificField DestinationSSRC returns an array of SSRC values that this report block refers to. *UnknownReportBlock : ReportBlock
VoIPMetricsReportBlock encodes a VoIP Metrics Report Block as described in RFC 3611, section 4.7. 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 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | BT=7 | reserved | block length = 8 | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | SSRC of source | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | loss rate | discard rate | burst density | gap density | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | burst duration | gap duration | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | round trip delay | end system delay | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | signal level | noise level | RERL | Gmin | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | R factor | ext. R factor | MOS-LQ | MOS-CQ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | RX config | reserved | JB nominal | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | JB maximum | JB abs max | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ BurstDensity uint8 BurstDuration uint16 DiscardRate uint8 EndSystemDelay uint16 ExtRFactor uint8 GapDensity uint8 GapDuration uint16 Gmin uint8 JBAbsMax uint16 JBMaximum uint16 JBNominal uint16 LossRate uint8 MOSCQ uint8 MOSLQ uint8 NoiseLevel uint8 RERL uint8 RFactor uint8 RXConfig uint8 RoundTripDelay uint16 SSRC uint32 SignalLevel uint8 XRHeader XRHeader XRHeader.BlockLength uint16 XRHeader.BlockType BlockTypeType XRHeader.TypeSpecific TypeSpecificField DestinationSSRC returns an array of SSRC values that this report block refers to. *VoIPMetricsReportBlock : ReportBlock
XRHeader defines the common fields that must appear at the start of each report block. In typical cases, users of ExtendedReports shouldn't need to access this. For locally-constructed report blocks, these values will not be accurate until the corresponding packet is marshaled. BlockLength uint16 BlockType BlockTypeType TypeSpecific TypeSpecificField
Package-Level Functions (total 4)
Marshal takes an array of Packets and serializes them to a single buffer
NackPairsFromSequenceNumbers generates a slice of NackPair from a list of SequenceNumbers This handles generating the proper values for PacketID/LostPackets
NewCNAMESourceDescription creates a new SourceDescription with a single CNAME item.
Unmarshal takes an entire udp datagram (which may consist of multiple RTCP packets) and returns the unmarshaled packets it contains. If this is a reduced-size RTCP packet a feedback packet (Goodbye, SliceLossIndication, etc) will be returned. Otherwise, the underlying type of the returned packet will be CompoundPacket.
Package-Level Constants (total 51)
These are the valid values that ChunkType can assume
Extended Report block types from RFC 3611.
Extended Report block types from RFC 3611.
ECNCE signals ECN Congestion Encountered, CE
ECNECT0 signals ECN Capable Transport, ECT(1)
ECNECT1 signals ECN Capable Transport, ECT(0)
ECNNonECT signals Non ECN-Capable Transport, Non-ECT
Transport and Payload specific feedback messages overload the count field to act as a message type. those are listed here
Transport and Payload specific feedback messages overload the count field to act as a message type. those are listed here
Transport and Payload specific feedback messages overload the count field to act as a message type. those are listed here
Transport and Payload specific feedback messages overload the count field to act as a message type. those are listed here
Transport and Payload specific feedback messages overload the count field to act as a message type. those are listed here
Transport and Payload specific feedback messages overload the count field to act as a message type. those are listed here
Transport and Payload specific feedback messages overload the count field to act as a message type. those are listed here
Extended Report block types from RFC 3611.
Extended Report block types from RFC 3611.
Extended Report block types from RFC 3611.
These are the valid values that ChunkType can assume
RTP SDES item types registered with IANA. See: https://www.iana.org/assignments/rtp-parameters/rtp-parameters.xhtml#rtp-parameters-5
RTP SDES item types registered with IANA. See: https://www.iana.org/assignments/rtp-parameters/rtp-parameters.xhtml#rtp-parameters-5
RTP SDES item types registered with IANA. See: https://www.iana.org/assignments/rtp-parameters/rtp-parameters.xhtml#rtp-parameters-5
RTP SDES item types registered with IANA. See: https://www.iana.org/assignments/rtp-parameters/rtp-parameters.xhtml#rtp-parameters-5
RTP SDES item types registered with IANA. See: https://www.iana.org/assignments/rtp-parameters/rtp-parameters.xhtml#rtp-parameters-5
RTP SDES item types registered with IANA. See: https://www.iana.org/assignments/rtp-parameters/rtp-parameters.xhtml#rtp-parameters-5
RTP SDES item types registered with IANA. See: https://www.iana.org/assignments/rtp-parameters/rtp-parameters.xhtml#rtp-parameters-5
RTP SDES item types registered with IANA. See: https://www.iana.org/assignments/rtp-parameters/rtp-parameters.xhtml#rtp-parameters-5
RTP SDES item types registered with IANA. See: https://www.iana.org/assignments/rtp-parameters/rtp-parameters.xhtml#rtp-parameters-5
Extended Report block types from RFC 3611.
These are the valid values that ChunkType can assume
Values for TTLorHopLimitType
Values for TTLorHopLimitType
Values for TTLorHopLimitType
RTCP packet types registered with IANA. See: https://www.iana.org/assignments/rtp-parameters/rtp-parameters.xhtml#rtp-parameters-4
RTCP packet types registered with IANA. See: https://www.iana.org/assignments/rtp-parameters/rtp-parameters.xhtml#rtp-parameters-4
RTCP packet types registered with IANA. See: https://www.iana.org/assignments/rtp-parameters/rtp-parameters.xhtml#rtp-parameters-4
RTCP packet types registered with IANA. See: https://www.iana.org/assignments/rtp-parameters/rtp-parameters.xhtml#rtp-parameters-4
RTCP packet types registered with IANA. See: https://www.iana.org/assignments/rtp-parameters/rtp-parameters.xhtml#rtp-parameters-4
type of packet status symbol and recv delta
type of packet status symbol and recv delta
type of packet status chunk
for packet status chunk
for status vector chunk
Extended Report block types from RFC 3611.