Documentation ¶
Index ¶
- Variables
- func IsLaterTimestamp(timestamp1 uint32, timestamp2 uint32) bool
- func IsTimestampWrapAround(timestamp1 uint32, timestamp2 uint32) bool
- type Bucket
- type Buffer
- func (b *Buffer) Bind(params webrtc.RTPParameters, o Options)
- func (b *Buffer) Bitrate() uint64
- func (b *Buffer) Close() error
- func (b *Buffer) GetClockRate() uint32
- func (b *Buffer) GetLatestTimestamp() (latestTimestamp uint32, latestTimestampTimeInNanosSinceEpoch int64)
- func (b *Buffer) GetMediaSSRC() uint32
- func (b *Buffer) GetPacket(buff []byte, sn uint16) (int, error)
- func (b *Buffer) GetSenderReportData() (rtpTime uint32, ntpTime uint64, lastReceivedTimeInNanosSinceEpoch int64)
- func (b *Buffer) GetStats() (stats Stats)
- func (b *Buffer) MaxTemporalLayer() int32
- func (b *Buffer) OnAudioLevel(fn func(level uint8))
- func (b *Buffer) OnClose(fn func())
- func (b *Buffer) OnFeedback(fn func(fb []rtcp.Packet))
- func (b *Buffer) OnTransportWideCC(fn func(sn uint16, timeNS int64, marker bool))
- func (b *Buffer) Read(buff []byte) (n int, err error)
- func (b *Buffer) ReadExtended() (*ExtPacket, error)
- func (b *Buffer) SetSenderReportData(rtpTime uint32, ntpTime uint64)
- func (b *Buffer) Write(pkt []byte) (n int, err error)
- type ExtPacket
- type Factory
- type Options
- type RTCPReader
- type Stats
- type VP8
Constants ¶
This section is empty.
Variables ¶
var Logger logr.Logger = logr.Discard()
Logger is an implementation of logr.Logger. If is not provided - will be turned off.
Functions ¶
func IsLaterTimestamp ¶
IsLaterTimestamp returns true if timestamp1 is later in time than timestamp2 factoring in timestamp wrap-around
func IsTimestampWrapAround ¶
IsTimestampWrapAround returns true if wrap around happens from timestamp1 to timestamp2
Types ¶
type Bucket ¶
type Bucket struct {
// contains filtered or unexported fields
}
type Buffer ¶
Buffer contains all packets
func (*Buffer) GetClockRate ¶
GetClockRate returns the RTP clock rate
func (*Buffer) GetLatestTimestamp ¶
func (b *Buffer) GetLatestTimestamp() (latestTimestamp uint32, latestTimestampTimeInNanosSinceEpoch int64)
GetLatestTimestamp returns the latest RTP timestamp factoring in potential RTP timestamp wrap-around
func (*Buffer) GetMediaSSRC ¶
GetMediaSSRC returns the associated SSRC of the RTP stream
func (*Buffer) GetSenderReportData ¶
func (b *Buffer) GetSenderReportData() (rtpTime uint32, ntpTime uint64, lastReceivedTimeInNanosSinceEpoch int64)
GetSenderReportData returns the rtp, ntp and nanos of the last sender report
func (*Buffer) MaxTemporalLayer ¶
func (*Buffer) OnAudioLevel ¶
func (*Buffer) OnFeedback ¶
func (*Buffer) OnTransportWideCC ¶
func (*Buffer) ReadExtended ¶
func (*Buffer) SetSenderReportData ¶
type Factory ¶
func (*Factory) GetBufferPair ¶
func (f *Factory) GetBufferPair(ssrc uint32) (*Buffer, *RTCPReader)
func (*Factory) GetOrNew ¶
func (f *Factory) GetOrNew(packetType packetio.BufferPacketType, ssrc uint32) io.ReadWriteCloser
func (*Factory) GetRTCPReader ¶
func (f *Factory) GetRTCPReader(ssrc uint32) *RTCPReader
type Options ¶
type Options struct {
MaxBitRate uint64
}
BufferOptions provides configuration options for the buffer
type RTCPReader ¶
type RTCPReader struct {
// contains filtered or unexported fields
}
func NewRTCPReader ¶
func NewRTCPReader(ssrc uint32) *RTCPReader
func (*RTCPReader) Close ¶
func (r *RTCPReader) Close() error
func (*RTCPReader) OnClose ¶
func (r *RTCPReader) OnClose(fn func())
func (*RTCPReader) OnPacket ¶
func (r *RTCPReader) OnPacket(f func([]byte))
type VP8 ¶
type VP8 struct { TemporalSupported bool // Optional Header PictureID uint16 /* 8 or 16 bits, picture ID */ PicIDIdx int MBit bool TL0PICIDX uint8 /* 8 bits temporal level zero index */ TlzIdx int // Optional Header If either of the T or K bits are set to 1, // the TID/Y/KEYIDX extension field MUST be present. TID uint8 /* 2 bits temporal layer idx*/ // IsKeyFrame is a helper to detect if current packet is a keyframe IsKeyFrame bool }
VP8 is a helper to get temporal data from VP8 packet header
VP8 Payload Descriptor 0 1 2 3 4 5 6 7 0 1 2 3 4 5 6 7 +-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+ |X|R|N|S|R| PID | (REQUIRED) |X|R|N|S|R| PID | (REQUIRED) +-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+ X: |I|L|T|K| RSV | (OPTIONAL) X: |I|L|T|K| RSV | (OPTIONAL) +-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+ I: |M| PictureID | (OPTIONAL) I: |M| PictureID | (OPTIONAL) +-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+ L: | TL0PICIDX | (OPTIONAL) | PictureID | +-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+ T/K:|TID|Y| KEYIDX | (OPTIONAL) L: | TL0PICIDX | (OPTIONAL) +-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+ T/K:|TID|Y| KEYIDX | (OPTIONAL) +-+-+-+-+-+-+-+-+