pacer

package
v1.9.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jun 5, 2025 License: Apache-2.0 Imports: 13 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type Base

type Base struct {
	*ProbeObserver
	// contains filtered or unexported fields
}

func NewBase

func NewBase(logger logger.Logger, bwe bwe.BWE) *Base

func (*Base) SendPacket

func (b *Base) SendPacket(p *Packet) (int, error)

func (*Base) SetBitrate added in v1.4.5

func (b *Base) SetBitrate(_bitrate int)

func (*Base) SetInterval added in v1.4.5

func (b *Base) SetInterval(_interval time.Duration)

func (*Base) TimeSinceLastSentPacket added in v1.8.1

func (b *Base) TimeSinceLastSentPacket() time.Duration

type LeakyBucket added in v1.4.5

type LeakyBucket struct {
	*Base
	// contains filtered or unexported fields
}

func NewLeakyBucket added in v1.4.5

func NewLeakyBucket(logger logger.Logger, bwe bwe.BWE, interval time.Duration, bitrate int) *LeakyBucket

func (*LeakyBucket) Enqueue added in v1.4.5

func (l *LeakyBucket) Enqueue(p *Packet)

func (*LeakyBucket) SetBitrate added in v1.4.5

func (l *LeakyBucket) SetBitrate(bitrate int)

func (*LeakyBucket) SetInterval added in v1.4.5

func (l *LeakyBucket) SetInterval(interval time.Duration)

func (*LeakyBucket) Stop added in v1.4.5

func (l *LeakyBucket) Stop()

type NoQueue

type NoQueue struct {
	*Base
	// contains filtered or unexported fields
}

func NewNoQueue

func NewNoQueue(logger logger.Logger, bwe bwe.BWE) *NoQueue

func (*NoQueue) Enqueue

func (n *NoQueue) Enqueue(p *Packet)

func (*NoQueue) Stop

func (n *NoQueue) Stop()

type Pacer

type Pacer interface {
	Enqueue(p *Packet)
	Stop()

	SetInterval(interval time.Duration)
	SetBitrate(bitrate int)

	TimeSinceLastSentPacket() time.Duration

	SetPacerProbeObserverListener(listener PacerProbeObserverListener)
	StartProbeCluster(pci ccutils.ProbeClusterInfo)
	EndProbeCluster(probeClusterId ccutils.ProbeClusterId) ccutils.ProbeClusterInfo
}

type PacerBehavior added in v1.9.0

type PacerBehavior string
const (
	PacerBehaviorPassThrough PacerBehavior = "pass-through"
	PacerBehaviorNoQueue     PacerBehavior = "no-queue"
	PacerBehaviorLeakybucket PacerBehavior = "leaky-bucket"
)

type PacerProbeObserverListener added in v1.8.1

type PacerProbeObserverListener interface {
	OnPacerProbeObserverClusterComplete(probeClusterId ccutils.ProbeClusterId)
}

type Packet

type Packet struct {
	Header             *rtp.Header
	HeaderSize         int
	Payload            []byte
	IsRTX              bool
	ProbeClusterId     ccutils.ProbeClusterId
	IsProbe            bool
	AbsSendTimeExtID   uint8
	TransportWideExtID uint8
	WriteStream        webrtc.TrackLocalWriter
	Pool               *sync.Pool
	PoolEntity         *[]byte
}

type PassThrough

type PassThrough struct {
	*Base
}

func NewPassThrough

func NewPassThrough(logger logger.Logger, bwe bwe.BWE) *PassThrough

func (*PassThrough) Enqueue

func (p *PassThrough) Enqueue(pkt *Packet)

func (*PassThrough) Stop

func (p *PassThrough) Stop()

type ProbeObserver added in v1.8.1

type ProbeObserver struct {
	// contains filtered or unexported fields
}

func NewProbeObserver added in v1.8.1

func NewProbeObserver(logger logger.Logger) *ProbeObserver

func (*ProbeObserver) EndProbeCluster added in v1.8.1

func (po *ProbeObserver) EndProbeCluster(probeClusterId ccutils.ProbeClusterId) ccutils.ProbeClusterInfo

func (*ProbeObserver) RecordPacket added in v1.8.1

func (po *ProbeObserver) RecordPacket(size int, isRTX bool, probeClusterId ccutils.ProbeClusterId, isProbe bool)

func (*ProbeObserver) SetPacerProbeObserverListener added in v1.8.1

func (po *ProbeObserver) SetPacerProbeObserverListener(listener PacerProbeObserverListener)

func (*ProbeObserver) StartProbeCluster added in v1.8.1

func (po *ProbeObserver) StartProbeCluster(pci ccutils.ProbeClusterInfo)

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL