Documentation
¶
Index ¶
- Constants
- Variables
- func ExtractDependencyDescriptorVideoSize(dd *dd.DependencyDescriptor) []codec.VideoSize
- func GetActiveDecodeTargetBitmask(layer VideoLayer, decodeTargets []DependencyDescriptorDecodeTarget) *uint32
- func GetSpatialLayerForRid(mimeType mime.MimeType, rid string, ti *livekit.TrackInfo) int32
- func GetSpatialLayerForVideoQuality(mimeType mime.MimeType, quality livekit.VideoQuality, ti *livekit.TrackInfo) int32
- func GetVideoLayerModeForMimeType(mimeType mime.MimeType, ti *livekit.TrackInfo) livekit.VideoLayer_Mode
- func GetVideoLayersForMimeType(mimeType mime.MimeType, ti *livekit.TrackInfo) []*livekit.VideoLayer
- func GetVideoQualityForSpatialLayer(mimeType mime.MimeType, spatialLayer int32, ti *livekit.TrackInfo) livekit.VideoQuality
- func LayerPresenceFromTrackInfo(mimeType mime.MimeType, trackInfo *livekit.TrackInfo) *[livekit.VideoQuality_HIGH + 1]bool
- func ReleaseExtDependencyDescriptor(extDD *ExtDependencyDescriptor)
- func ReleaseExtPacket(extPkt *ExtPacket)
- func RidToSpatialLayer(mimeType mime.MimeType, rid string, trackInfo *livekit.TrackInfo, ...) int32
- func SpatialLayerToRid(mimeType mime.MimeType, layer int32, trackInfo *livekit.TrackInfo, ...) string
- func SpatialLayerToVideoQuality(mimeType mime.MimeType, layer int32, trackInfo *livekit.TrackInfo) livekit.VideoQuality
- func VideoQualityToRid(mimeType mime.MimeType, quality livekit.VideoQuality, ...) string
- func VideoQualityToSpatialLayer(mimeType mime.MimeType, quality livekit.VideoQuality, ...) int32
- type Buffer
- func (b *Buffer) Bind(params webrtc.RTPParameters, codec webrtc.RTPCodecCapability, bitrates int) error
- func (b *Buffer) Close() error
- func (b *Buffer) NotifyRTX(ssrc uint32, repairSSRC uint32, rsid string)
- func (b *Buffer) OnClose(fn func())
- func (b *Buffer) OnFinalRtpStats(fn func(*livekit.RTPStats))
- func (b *Buffer) OnNotifyRTX(fn func(ssrc uint32, repairSSRC uint32, rsid string))
- func (b *Buffer) OnRtcpFeedback(fn func(fb []rtcp.Packet))
- func (b *Buffer) Read(buff []byte) (n int, err error)
- func (b *Buffer) SetAudioLossProxying(enable bool)
- func (b *Buffer) SetLastFractionLostReport(lost uint8)
- func (b *Buffer) SetPrimaryBufferForRTX(primaryBuffer *Buffer)
- func (b *Buffer) SetStreamInfoProbe(probe *StreamInfoProbe)
- func (b *Buffer) SetTWCCAndExtID(twcc *twcc.Responder, extID uint8)
- func (b *Buffer) Write(pkt []byte) (n int, err error)
- type BufferBase
- func (b *BufferBase) Bind(rtpParameters webrtc.RTPParameters, codec webrtc.RTPCodecCapability, ...) error
- func (b *BufferBase) BindLocked(rtpParameters webrtc.RTPParameters, codec webrtc.RTPCodecCapability, ...) error
- func (b *BufferBase) CloseWithReason(reason string) (stats *livekit.RTPStats, err error)
- func (b *BufferBase) GetAudioLevel() (float64, bool)
- func (b *BufferBase) GetDeltaStats() *StreamStatsWithLayers
- func (b *BufferBase) GetDeltaStatsLite() *rtpstats.RTPDeltaInfoLite
- func (b *BufferBase) GetLastSenderReportTime() time.Time
- func (b *BufferBase) GetNACKPairs() []rtcp.NackPair
- func (b *BufferBase) GetNACKPairsLocked() []rtcp.NackPair
- func (b *BufferBase) GetPacket(buff []byte, esn uint64) (int, error)
- func (b *BufferBase) GetRtcpReceptionReportLocked(proxyLoss uint8) *rtcp.ReceptionReport
- func (b *BufferBase) GetSenderReportData() *livekit.RTCPSenderReportState
- func (b *BufferBase) GetStats() *livekit.RTPStats
- func (b *BufferBase) GetTemporalLayerFpsForSpatial(layer int32) []float32
- func (b *BufferBase) HandleIncomingPacket(rawPkt []byte, rtpPacket *rtp.Packet, arrivalTime int64, isBuffered bool, ...) (uint64, error)
- func (b *BufferBase) HandleIncomingPacketLocked(rawPkt []byte, rtpPacket *rtp.Packet, arrivalTime int64, isBuffered bool, ...) (uint64, error)
- func (b *BufferBase) IsClosed() bool
- func (b *BufferBase) MarkForRestartStream(reason string)
- func (b *BufferBase) MaxAudioPkts() int
- func (b *BufferBase) MaxVideoPkts() int
- func (b *BufferBase) NotifyRead()
- func (b *BufferBase) OnCodecChange(fn func(webrtc.RTPCodecParameters))
- func (b *BufferBase) OnFpsChanged(f func())
- func (b *BufferBase) OnRtcpSenderReport(fn func())
- func (b *BufferBase) OnStreamRestart(fn func(string))
- func (b *BufferBase) OnVideoSizeChanged(fn func([]codec.VideoSize))
- func (b *BufferBase) ReadExtended(buf []byte) (*ExtPacket, error)
- func (b *BufferBase) RestartOOBSequenceNumber(reason string)
- func (b *BufferBase) RestartStream(reason string)
- func (b *BufferBase) SSRC() uint32
- func (b *BufferBase) SendPLI(force bool)
- func (b *BufferBase) SetAudioLevelConfig(audioLevelConfig audio.AudioLevelConfig)
- func (b *BufferBase) SetLogger(lgr logger.Logger)
- func (b *BufferBase) SetPLIThrottle(duration int64)
- func (b *BufferBase) SetPaused(paused bool)
- func (b *BufferBase) SetRTT(rtt uint32)
- func (b *BufferBase) SetSenderReportData(srData *livekit.RTCPSenderReportState)
- func (b *BufferBase) SetStreamRestartDetection(enable bool)
- func (b *BufferBase) StartKeyFrameSeeder()
- func (b *BufferBase) StopKeyFrameSeeder()
- func (b *BufferBase) WaitRead()
- type BufferBaseParams
- type BufferProvider
- type DataStats
- type DataStatsParam
- type DependencyDescriptorDecodeTarget
- type DependencyDescriptorParser
- type ExtDependencyDescriptor
- type ExtPacket
- type Factory
- func (f *Factory) GetBuffer(ssrc uint32) *Buffer
- func (f *Factory) GetBufferPair(ssrc uint32) (*Buffer, *RTCPReader)
- func (f *Factory) GetOrNew(packetType packetio.BufferPacketType, ssrc uint32) io.ReadWriteCloser
- func (f *Factory) GetRTCPReader(ssrc uint32) *RTCPReader
- func (f *Factory) SetRTXPair(repair, base uint32, rsid string)
- func (f *Factory) SetStreamInfoProbe(ssrc uint32, probe *StreamInfoProbe) bool
- type FactoryOfBufferFactory
- type FrameEntity
- type FrameIntegrityChecker
- type FrameRateCalculator
- type FrameRateCalculatorDD
- func (f *FrameRateCalculatorDD) Completed() bool
- func (f *FrameRateCalculatorDD) GetFrameRateCalculatorForSpatial(spatial int32) *FrameRateCalculatorForDDLayer
- func (f *FrameRateCalculatorDD) GetFrameRateForSpatial(spatial int32) []float32
- func (f *FrameRateCalculatorDD) RecvPacket(ep *ExtPacket) bool
- func (f *FrameRateCalculatorDD) SetMaxLayer(spatial, temporal int32)
- type FrameRateCalculatorForDDLayer
- type FrameRateCalculatorForVP9Layer
- type FrameRateCalculatorH26x
- type FrameRateCalculatorVP8
- type FrameRateCalculatorVP9
- func (f *FrameRateCalculatorVP9) Completed() bool
- func (f *FrameRateCalculatorVP9) GetFrameRateCalculatorForSpatial(spatial int32) *FrameRateCalculatorForVP9Layer
- func (f *FrameRateCalculatorVP9) GetFrameRateForSpatial(spatial int32) []float32
- func (f *FrameRateCalculatorVP9) RecvPacket(ep *ExtPacket) bool
- type PacketHistory
- type RTCPReader
- type StreamInfoProbe
- type StreamStatsWithLayers
- type VideoLayer
- type VideoLayersRid
Constants ¶
View Source
const ( InitPacketBufferSizeVideo = 300 InitPacketBufferSizeAudio = 70 )
View Source
const ( InvalidLayerSpatial = int32(-1) InvalidLayerTemporal = int32(-1) DefaultMaxLayerSpatial = int32(2) DefaultMaxLayerTemporal = int32(3) )
Variables ¶
View Source
var ( ErrFrameEarlierThanKeyFrame = fmt.Errorf("frame is earlier than current keyframe") ErrDDStructureAttachedToNonFirstPacket = fmt.Errorf("dependency descriptor structure is attached to non-first packet of a frame") ErrDDExtentionNotFound = fmt.Errorf("dependency descriptor extension not found") )
View Source
var ( InvalidLayer = VideoLayer{ Spatial: InvalidLayerSpatial, Temporal: InvalidLayerTemporal, } DefaultMaxLayer = VideoLayer{ Spatial: DefaultMaxLayerSpatial, Temporal: DefaultMaxLayerTemporal, } )
View Source
var (
DefaultVideoLayersRid = videoLayersRidQHF
)
View Source
var ( ExtDependencyDescriptorFactory = &sync.Pool{ New: func() any { return &ExtDependencyDescriptor{} }, } )
View Source
var ( ExtPacketFactory = &sync.Pool{ New: func() any { return &ExtPacket{} }, } )
Functions ¶
func ExtractDependencyDescriptorVideoSize ¶ added in v1.9.1
func ExtractDependencyDescriptorVideoSize(dd *dd.DependencyDescriptor) []codec.VideoSize
func GetActiveDecodeTargetBitmask ¶ added in v1.4.2
func GetActiveDecodeTargetBitmask(layer VideoLayer, decodeTargets []DependencyDescriptorDecodeTarget) *uint32
func GetSpatialLayerForRid ¶ added in v1.9.1
func GetSpatialLayerForVideoQuality ¶ added in v1.9.1
func GetVideoLayerModeForMimeType ¶ added in v1.9.1
func GetVideoLayersForMimeType ¶ added in v1.9.1
func GetVideoQualityForSpatialLayer ¶ added in v1.9.1
func LayerPresenceFromTrackInfo ¶ added in v1.2.1
func ReleaseExtDependencyDescriptor ¶ added in v1.9.8
func ReleaseExtDependencyDescriptor(extDD *ExtDependencyDescriptor)
func ReleaseExtPacket ¶ added in v1.9.8
func ReleaseExtPacket(extPkt *ExtPacket)
func RidToSpatialLayer ¶ added in v1.2.1
func SpatialLayerToRid ¶ added in v1.2.1
func SpatialLayerToVideoQuality ¶ added in v1.2.1
func VideoQualityToRid ¶ added in v1.2.1
func VideoQualityToRid(mimeType mime.MimeType, quality livekit.VideoQuality, trackInfo *livekit.TrackInfo, ridSpace VideoLayersRid) string
func VideoQualityToSpatialLayer ¶ added in v1.2.1
Types ¶
type Buffer ¶
type Buffer struct {
*BufferBase
// contains filtered or unexported fields
}
Buffer contains all packets
func (*Buffer) Bind ¶
func (b *Buffer) Bind(params webrtc.RTPParameters, codec webrtc.RTPCodecCapability, bitrates int) error
func (*Buffer) OnFinalRtpStats ¶ added in v1.4.0
func (*Buffer) OnNotifyRTX ¶ added in v1.9.10
func (*Buffer) OnRtcpFeedback ¶ added in v0.15.7
func (*Buffer) SetAudioLossProxying ¶ added in v1.6.0
func (*Buffer) SetLastFractionLostReport ¶
func (*Buffer) SetPrimaryBufferForRTX ¶ added in v1.5.3
func (*Buffer) SetStreamInfoProbe ¶ added in v1.13.6
func (b *Buffer) SetStreamInfoProbe(probe *StreamInfoProbe)
SetStreamInfoProbe installs probe and runs it over packets already queued.
func (*Buffer) SetTWCCAndExtID ¶ added in v1.5.3
type BufferBase ¶ added in v1.9.10
func NewBufferBase ¶ added in v1.9.10
func NewBufferBase(params BufferBaseParams) *BufferBase
func (*BufferBase) Bind ¶ added in v1.9.10
func (b *BufferBase) Bind(rtpParameters webrtc.RTPParameters, codec webrtc.RTPCodecCapability, bitrate int) error
func (*BufferBase) BindLocked ¶ added in v1.9.10
func (b *BufferBase) BindLocked(rtpParameters webrtc.RTPParameters, codec webrtc.RTPCodecCapability, bitrate int) error
func (*BufferBase) CloseWithReason ¶ added in v1.9.10
func (b *BufferBase) CloseWithReason(reason string) (stats *livekit.RTPStats, err error)
func (*BufferBase) GetAudioLevel ¶ added in v1.9.10
func (b *BufferBase) GetAudioLevel() (float64, bool)
func (*BufferBase) GetDeltaStats ¶ added in v1.9.10
func (b *BufferBase) GetDeltaStats() *StreamStatsWithLayers
func (*BufferBase) GetDeltaStatsLite ¶ added in v1.9.10
func (b *BufferBase) GetDeltaStatsLite() *rtpstats.RTPDeltaInfoLite
func (*BufferBase) GetLastSenderReportTime ¶ added in v1.9.10
func (b *BufferBase) GetLastSenderReportTime() time.Time
func (*BufferBase) GetNACKPairs ¶ added in v1.9.10
func (b *BufferBase) GetNACKPairs() []rtcp.NackPair
func (*BufferBase) GetNACKPairsLocked ¶ added in v1.9.10
func (b *BufferBase) GetNACKPairsLocked() []rtcp.NackPair
func (*BufferBase) GetPacket ¶ added in v1.9.10
func (b *BufferBase) GetPacket(buff []byte, esn uint64) (int, error)
func (*BufferBase) GetRtcpReceptionReportLocked ¶ added in v1.9.10
func (b *BufferBase) GetRtcpReceptionReportLocked(proxyLoss uint8) *rtcp.ReceptionReport
func (*BufferBase) GetSenderReportData ¶ added in v1.9.10
func (b *BufferBase) GetSenderReportData() *livekit.RTCPSenderReportState
func (*BufferBase) GetStats ¶ added in v1.9.10
func (b *BufferBase) GetStats() *livekit.RTPStats
func (*BufferBase) GetTemporalLayerFpsForSpatial ¶ added in v1.9.10
func (b *BufferBase) GetTemporalLayerFpsForSpatial(layer int32) []float32
func (*BufferBase) HandleIncomingPacket ¶ added in v1.9.10
func (*BufferBase) HandleIncomingPacketLocked ¶ added in v1.9.10
func (*BufferBase) IsClosed ¶ added in v1.9.10
func (b *BufferBase) IsClosed() bool
func (*BufferBase) MarkForRestartStream ¶ added in v1.9.12
func (b *BufferBase) MarkForRestartStream(reason string)
func (*BufferBase) MaxAudioPkts ¶ added in v1.9.10
func (b *BufferBase) MaxAudioPkts() int
func (*BufferBase) MaxVideoPkts ¶ added in v1.9.10
func (b *BufferBase) MaxVideoPkts() int
func (*BufferBase) NotifyRead ¶ added in v1.9.10
func (b *BufferBase) NotifyRead()
func (*BufferBase) OnCodecChange ¶ added in v1.9.10
func (b *BufferBase) OnCodecChange(fn func(webrtc.RTPCodecParameters))
func (*BufferBase) OnFpsChanged ¶ added in v1.9.10
func (b *BufferBase) OnFpsChanged(f func())
func (*BufferBase) OnRtcpSenderReport ¶ added in v1.9.10
func (b *BufferBase) OnRtcpSenderReport(fn func())
func (*BufferBase) OnStreamRestart ¶ added in v1.9.10
func (b *BufferBase) OnStreamRestart(fn func(string))
func (*BufferBase) OnVideoSizeChanged ¶ added in v1.9.10
func (b *BufferBase) OnVideoSizeChanged(fn func([]codec.VideoSize))
func (*BufferBase) ReadExtended ¶ added in v1.9.10
func (b *BufferBase) ReadExtended(buf []byte) (*ExtPacket, error)
func (*BufferBase) RestartOOBSequenceNumber ¶ added in v1.10.0
func (b *BufferBase) RestartOOBSequenceNumber(reason string)
func (*BufferBase) RestartStream ¶ added in v1.9.10
func (b *BufferBase) RestartStream(reason string)
func (*BufferBase) SSRC ¶ added in v1.9.10
func (b *BufferBase) SSRC() uint32
func (*BufferBase) SendPLI ¶ added in v1.9.10
func (b *BufferBase) SendPLI(force bool)
func (*BufferBase) SetAudioLevelConfig ¶ added in v1.9.10
func (b *BufferBase) SetAudioLevelConfig(audioLevelConfig audio.AudioLevelConfig)
func (*BufferBase) SetLogger ¶ added in v1.9.10
func (b *BufferBase) SetLogger(lgr logger.Logger)
func (*BufferBase) SetPLIThrottle ¶ added in v1.9.10
func (b *BufferBase) SetPLIThrottle(duration int64)
func (*BufferBase) SetPaused ¶ added in v1.9.10
func (b *BufferBase) SetPaused(paused bool)
func (*BufferBase) SetRTT ¶ added in v1.9.10
func (b *BufferBase) SetRTT(rtt uint32)
func (*BufferBase) SetSenderReportData ¶ added in v1.9.10
func (b *BufferBase) SetSenderReportData(srData *livekit.RTCPSenderReportState)
func (*BufferBase) SetStreamRestartDetection ¶ added in v1.9.10
func (b *BufferBase) SetStreamRestartDetection(enable bool)
func (*BufferBase) StartKeyFrameSeeder ¶ added in v1.9.10
func (b *BufferBase) StartKeyFrameSeeder()
func (*BufferBase) StopKeyFrameSeeder ¶ added in v1.9.10
func (b *BufferBase) StopKeyFrameSeeder()
func (*BufferBase) WaitRead ¶ added in v1.9.10
func (b *BufferBase) WaitRead()
type BufferBaseParams ¶ added in v1.9.10
type BufferProvider ¶ added in v1.9.10
type BufferProvider interface {
SetLogger(lgr logger.Logger)
SetAudioLevelConfig(audioLevelConfig audio.AudioLevelConfig)
SetStreamRestartDetection(enable bool)
SetPLIThrottle(duration int64)
SetRTT(rtt uint32)
SetPaused(paused bool)
SendPLI(force bool)
ReadExtended(buf []byte) (*ExtPacket, error)
GetPacket(buf []byte, esn uint64) (int, error)
GetAudioLevel() (float64, bool)
GetTemporalLayerFpsForSpatial(layer int32) []float32
GetStats() *livekit.RTPStats
GetDeltaStats() *StreamStatsWithLayers
GetDeltaStatsLite() *rtpstats.RTPDeltaInfoLite
GetLastSenderReportTime() time.Time
GetNACKPairs() []rtcp.NackPair
SetSenderReportData(srData *livekit.RTCPSenderReportState)
GetSenderReportData() *livekit.RTCPSenderReportState
OnRtcpSenderReport(fn func())
OnFpsChanged(fn func())
OnVideoSizeChanged(fn func([]codec.VideoSize))
OnCodecChange(fn func(webrtc.RTPCodecParameters))
OnStreamRestart(fn func(string))
StartKeyFrameSeeder()
StopKeyFrameSeeder()
HandleIncomingPacket(
rawPkt []byte,
rtpPacket *rtp.Packet,
arrivalTime int64,
isBuffered bool,
isRTX bool,
skippedSeqs []uint16,
oobSequenceNumber uint16,
) (uint64, error)
MarkForRestartStream(reason string)
RestartStream(reason string)
CloseWithReason(reason string) (*livekit.RTPStats, error)
}
type DataStats ¶ added in v0.15.6
type DataStats struct {
// contains filtered or unexported fields
}
func NewDataStats ¶ added in v0.15.6
func NewDataStats(params DataStatsParam) *DataStats
func (*DataStats) ToProtoActive ¶ added in v0.15.6
func (*DataStats) ToProtoAggregateOnly ¶ added in v0.15.6
type DataStatsParam ¶ added in v0.15.6
type DependencyDescriptorDecodeTarget ¶ added in v1.4.2
type DependencyDescriptorDecodeTarget struct {
Target int
Layer VideoLayer
}
func ProcessFrameDependencyStructure ¶ added in v1.4.2
func ProcessFrameDependencyStructure(structure *dd.FrameDependencyStructure) []DependencyDescriptorDecodeTarget
func (*DependencyDescriptorDecodeTarget) String ¶ added in v1.5.1
func (dt *DependencyDescriptorDecodeTarget) String() string
type DependencyDescriptorParser ¶ added in v1.0.0
type DependencyDescriptorParser struct {
// contains filtered or unexported fields
}
func NewDependencyDescriptorParser ¶ added in v1.0.0
func (*DependencyDescriptorParser) Parse ¶ added in v1.0.0
func (r *DependencyDescriptorParser) Parse(pkt *rtp.Packet) (*ExtDependencyDescriptor, VideoLayer, error)
type ExtDependencyDescriptor ¶ added in v1.4.4
type ExtDependencyDescriptor struct {
Descriptor *dd.DependencyDescriptor
DecodeTargets []DependencyDescriptorDecodeTarget
StructureUpdated bool
ActiveDecodeTargetsUpdated bool
Integrity bool
ExtFrameNum uint64
// the frame number of the keyframe which the current frame depends on
ExtKeyFrameNum uint64
// increase when the stream restarts, clear and reinitialize all dd state includes
// attached structure, frame chain, decode target.
RestartGeneration int
}
type ExtPacket ¶
type ExtPacket struct {
VideoLayer
Arrival int64
ExtSequenceNumber uint64
ExtTimestamp uint64
Packet *rtp.Packet
Payload any
IsKeyFrame bool
RawPacket []byte
DependencyDescriptor *ExtDependencyDescriptor
AbsCaptureTimeExt *act.AbsCaptureTime
IsOutOfOrder bool
IsBuffered bool
}
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
func (*Factory) SetRTXPair ¶ added in v1.5.3
func (*Factory) SetStreamInfoProbe ¶ added in v1.13.6
func (f *Factory) SetStreamInfoProbe(ssrc uint32, probe *StreamInfoProbe) bool
SetStreamInfoProbe installs probe on the buffer of ssrc, reporting whether that buffer exists. False means the stream can never be identified.
type FactoryOfBufferFactory ¶ added in v1.3.2
type FactoryOfBufferFactory struct {
// contains filtered or unexported fields
}
func NewFactoryOfBufferFactory ¶ added in v1.3.2
func NewFactoryOfBufferFactory(trackingPacketsVideo int, trackingPacketsAudio int) *FactoryOfBufferFactory
func (*FactoryOfBufferFactory) CreateBufferFactory ¶ added in v1.3.2
func (f *FactoryOfBufferFactory) CreateBufferFactory() *Factory
type FrameEntity ¶ added in v1.4.5
type FrameEntity struct {
// contains filtered or unexported fields
}
func (*FrameEntity) AddPacket ¶ added in v1.4.5
func (fe *FrameEntity) AddPacket(extSeq uint64, ddVal *dd.DependencyDescriptor)
func (*FrameEntity) Integrity ¶ added in v1.4.5
func (fe *FrameEntity) Integrity() bool
func (*FrameEntity) Reset ¶ added in v1.4.5
func (fe *FrameEntity) Reset()
type FrameIntegrityChecker ¶ added in v1.4.5
type FrameIntegrityChecker struct {
// contains filtered or unexported fields
}
func NewFrameIntegrityChecker ¶ added in v1.4.5
func NewFrameIntegrityChecker(frameCount, packetCount int) *FrameIntegrityChecker
func (*FrameIntegrityChecker) AddPacket ¶ added in v1.4.5
func (fc *FrameIntegrityChecker) AddPacket(extSeq uint64, extFrameNum uint64, ddVal *dd.DependencyDescriptor)
func (*FrameIntegrityChecker) FrameIntegrity ¶ added in v1.4.5
func (fc *FrameIntegrityChecker) FrameIntegrity(extFrameNum uint64) bool
type FrameRateCalculator ¶ added in v1.3.0
type FrameRateCalculatorDD ¶ added in v1.3.0
type FrameRateCalculatorDD struct {
// contains filtered or unexported fields
}
FrameRateCalculator based on Dependency descriptor
func NewFrameRateCalculatorDD ¶ added in v1.3.0
func NewFrameRateCalculatorDD(clockRate uint32, logger logger.Logger) *FrameRateCalculatorDD
func (*FrameRateCalculatorDD) Completed ¶ added in v1.3.0
func (f *FrameRateCalculatorDD) Completed() bool
func (*FrameRateCalculatorDD) GetFrameRateCalculatorForSpatial ¶ added in v1.3.0
func (f *FrameRateCalculatorDD) GetFrameRateCalculatorForSpatial(spatial int32) *FrameRateCalculatorForDDLayer
func (*FrameRateCalculatorDD) GetFrameRateForSpatial ¶ added in v1.3.0
func (f *FrameRateCalculatorDD) GetFrameRateForSpatial(spatial int32) []float32
func (*FrameRateCalculatorDD) RecvPacket ¶ added in v1.3.0
func (f *FrameRateCalculatorDD) RecvPacket(ep *ExtPacket) bool
func (*FrameRateCalculatorDD) SetMaxLayer ¶ added in v1.3.0
func (f *FrameRateCalculatorDD) SetMaxLayer(spatial, temporal int32)
type FrameRateCalculatorForDDLayer ¶ added in v1.3.0
type FrameRateCalculatorForDDLayer struct {
*FrameRateCalculatorDD
// contains filtered or unexported fields
}
func (*FrameRateCalculatorForDDLayer) GetFrameRate ¶ added in v1.3.0
func (f *FrameRateCalculatorForDDLayer) GetFrameRate() []float32
type FrameRateCalculatorForVP9Layer ¶ added in v1.4.2
type FrameRateCalculatorForVP9Layer struct {
*FrameRateCalculatorVP9
// contains filtered or unexported fields
}
func (*FrameRateCalculatorForVP9Layer) GetFrameRate ¶ added in v1.4.2
func (f *FrameRateCalculatorForVP9Layer) GetFrameRate() []float32
type FrameRateCalculatorH26x ¶ added in v1.8.4
type FrameRateCalculatorH26x struct {
// contains filtered or unexported fields
}
func NewFrameRateCalculatorH26x ¶ added in v1.8.4
func NewFrameRateCalculatorH26x(clockRate uint32, logger logger.Logger) *FrameRateCalculatorH26x
func (*FrameRateCalculatorH26x) Completed ¶ added in v1.8.4
func (f *FrameRateCalculatorH26x) Completed() bool
func (*FrameRateCalculatorH26x) GetFrameRate ¶ added in v1.8.4
func (f *FrameRateCalculatorH26x) GetFrameRate() []float32
func (*FrameRateCalculatorH26x) RecvPacket ¶ added in v1.8.4
func (f *FrameRateCalculatorH26x) RecvPacket(ep *ExtPacket) bool
type FrameRateCalculatorVP8 ¶ added in v1.3.0
type FrameRateCalculatorVP8 struct {
// contains filtered or unexported fields
}
FrameRateCalculator based on PictureID in VP8
func NewFrameRateCalculatorVP8 ¶ added in v1.3.0
func NewFrameRateCalculatorVP8(clockRate uint32, logger logger.Logger) *FrameRateCalculatorVP8
func (FrameRateCalculatorVP8) Completed ¶ added in v1.3.0
func (f FrameRateCalculatorVP8) Completed() bool
func (FrameRateCalculatorVP8) GetFrameRate ¶ added in v1.3.0
func (f FrameRateCalculatorVP8) GetFrameRate() []float32
func (*FrameRateCalculatorVP8) RecvPacket ¶ added in v1.3.0
func (f *FrameRateCalculatorVP8) RecvPacket(ep *ExtPacket) bool
type FrameRateCalculatorVP9 ¶ added in v1.4.2
type FrameRateCalculatorVP9 struct {
// contains filtered or unexported fields
}
FrameRateCalculator based on PictureID in VP9
func NewFrameRateCalculatorVP9 ¶ added in v1.4.2
func NewFrameRateCalculatorVP9(clockRate uint32, logger logger.Logger) *FrameRateCalculatorVP9
func (*FrameRateCalculatorVP9) Completed ¶ added in v1.4.2
func (f *FrameRateCalculatorVP9) Completed() bool
func (*FrameRateCalculatorVP9) GetFrameRateCalculatorForSpatial ¶ added in v1.4.2
func (f *FrameRateCalculatorVP9) GetFrameRateCalculatorForSpatial(spatial int32) *FrameRateCalculatorForVP9Layer
func (*FrameRateCalculatorVP9) GetFrameRateForSpatial ¶ added in v1.4.2
func (f *FrameRateCalculatorVP9) GetFrameRateForSpatial(spatial int32) []float32
func (*FrameRateCalculatorVP9) RecvPacket ¶ added in v1.4.2
func (f *FrameRateCalculatorVP9) RecvPacket(ep *ExtPacket) bool
type PacketHistory ¶ added in v1.4.5
type PacketHistory struct {
// contains filtered or unexported fields
}
func NewPacketHistory ¶ added in v1.4.5
func NewPacketHistory(packetCount int) *PacketHistory
func (*PacketHistory) AddPacket ¶ added in v1.4.5
func (ph *PacketHistory) AddPacket(extSeq uint64)
func (*PacketHistory) PacketsConsecutive ¶ added in v1.4.5
func (ph *PacketHistory) PacketsConsecutive(start, end uint64) bool
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 StreamInfoProbe ¶ added in v1.13.6
type StreamInfoProbe struct {
MidExtID uint8
RidExtID uint8
RsidExtID uint8
// Tries bounds how many packets are inspected before giving up.
Tries int
// OnFound is called at most once, in a goroutine, as it can re-enter this buffer.
OnFound func(ssrc uint32, mid, rid, rsid string)
}
StreamInfoProbe identifies a stream from the mid/rid/rsid header extensions of its packets. It runs on the write path, i. e. as SRTP pushes into this buffer, because nothing reads remote streams through pion's interceptor chain.
type StreamStatsWithLayers ¶ added in v0.15.4
type StreamStatsWithLayers struct {
RTPStats *rtpstats.RTPDeltaInfo
Layers map[int32]*rtpstats.RTPDeltaInfo
RTPStatsRemoteView *rtpstats.RTPDeltaInfo
}
type VideoLayer ¶ added in v1.0.0
func (VideoLayer) GreaterThan ¶ added in v1.0.0
func (v VideoLayer) GreaterThan(v2 VideoLayer) bool
func (VideoLayer) IsValid ¶ added in v1.0.0
func (v VideoLayer) IsValid() bool
func (VideoLayer) SpatialGreaterThanOrEqual ¶ added in v1.0.0
func (v VideoLayer) SpatialGreaterThanOrEqual(v2 VideoLayer) bool
func (VideoLayer) String ¶ added in v1.0.0
func (v VideoLayer) String() string
type VideoLayersRid ¶ added in v1.9.1
type VideoLayersRid [DefaultMaxLayerSpatial + 1]string
func NormalizeVideoLayersRid ¶ added in v1.9.1
func NormalizeVideoLayersRid(rids VideoLayersRid) VideoLayersRid
Click to show internal directories.
Click to hide internal directories.