Help us shape the future of Go! Take the 2026 Go Developer Survey

streamtracker

package
v1.13.4 Latest Latest
Warning

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

Go to latest
Published: Jul 18, 2026 License: Apache-2.0 Imports: 8 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

View Source
var (
	DefaultStreamTrackerFrameConfigVideo = map[int32]StreamTrackerFrameConfig{
		0: {
			MinFPS: 5.0,
		},
		1: {
			MinFPS: 5.0,
		},
		2: {
			MinFPS: 5.0,
		},
	}

	DefaultStreamTrackerFrameConfigScreenshare = map[int32]StreamTrackerFrameConfig{
		0: {
			MinFPS: 0.5,
		},
		1: {
			MinFPS: 0.5,
		},
		2: {
			MinFPS: 0.5,
		},
	}
)
View Source
var (
	DefaultStreamTrackerPacketConfigVideo = map[int32]StreamTrackerPacketConfig{
		0: {SamplesRequired: 1,
			CyclesRequired: 4,
			CycleDuration:  500 * time.Millisecond,
		},
		1: {SamplesRequired: 5,
			CyclesRequired: 20,
			CycleDuration:  500 * time.Millisecond,
		},
		2: {SamplesRequired: 5,
			CyclesRequired: 20,
			CycleDuration:  500 * time.Millisecond,
		},
	}

	DefaultStreamTrackerPacketConfigScreenshare = map[int32]StreamTrackerPacketConfig{
		0: {
			SamplesRequired: 1,
			CyclesRequired:  1,
			CycleDuration:   2 * time.Second,
		},
		1: {
			SamplesRequired: 1,
			CyclesRequired:  1,
			CycleDuration:   2 * time.Second,
		},
		2: {
			SamplesRequired: 1,
			CyclesRequired:  1,
			CycleDuration:   2 * time.Second,
		},
	}
)

Functions

This section is empty.

Types

type StreamStatus

type StreamStatus int32
const (
	StreamStatusStopped StreamStatus = iota
	StreamStatusActive
)

func (StreamStatus) String

func (s StreamStatus) String() string

type StreamStatusChange

type StreamStatusChange int32
const (
	StreamStatusChangeNone StreamStatusChange = iota
	StreamStatusChangeStopped
	StreamStatusChangeActive
)

func (StreamStatusChange) String

func (s StreamStatusChange) String() string

type StreamTracker

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

func NewStreamTracker

func NewStreamTracker(params StreamTrackerParams) *StreamTracker

func (*StreamTracker) BitrateTemporalCumulative

func (s *StreamTracker) BitrateTemporalCumulative() []int64

BitrateTemporalCumulative returns the current stream bitrate temporal layer accumulated with lower temporal layers.

func (*StreamTracker) Observe

func (s *StreamTracker) Observe(
	temporalLayer int32,
	pktSize int,
	payloadSize int,
	hasMarker bool,
	ts uint32,
	_ *buffer.ExtDependencyDescriptor,
)

func (*StreamTracker) OnBitrateAvailable

func (s *StreamTracker) OnBitrateAvailable(f func())

func (*StreamTracker) OnStatusChanged

func (s *StreamTracker) OnStatusChanged(f func(status StreamStatus))

func (*StreamTracker) Reset

func (s *StreamTracker) Reset()

func (*StreamTracker) SetPaused

func (s *StreamTracker) SetPaused(paused bool)

func (*StreamTracker) Start

func (s *StreamTracker) Start()

func (*StreamTracker) Status

func (s *StreamTracker) Status() StreamStatus

func (*StreamTracker) Stop

func (s *StreamTracker) Stop()

type StreamTrackerDependencyDescriptor added in v1.4.4

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

func NewStreamTrackerDependencyDescriptor added in v1.4.4

func NewStreamTrackerDependencyDescriptor(params StreamTrackerParams) *StreamTrackerDependencyDescriptor

func (*StreamTrackerDependencyDescriptor) BitrateTemporalCumulative added in v1.4.4

func (s *StreamTrackerDependencyDescriptor) BitrateTemporalCumulative(layer int32) []int64

func (*StreamTrackerDependencyDescriptor) LayeredTracker added in v1.4.4

func (*StreamTrackerDependencyDescriptor) Observe added in v1.4.4

func (s *StreamTrackerDependencyDescriptor) Observe(temporalLayer int32, pktSize int, payloadSize int, hasMarker bool, ts uint32, ddVal *buffer.ExtDependencyDescriptor)

func (*StreamTrackerDependencyDescriptor) OnBitrateAvailable added in v1.4.4

func (s *StreamTrackerDependencyDescriptor) OnBitrateAvailable(layer int32, f func())

func (*StreamTrackerDependencyDescriptor) OnStatusChanged added in v1.4.4

func (s *StreamTrackerDependencyDescriptor) OnStatusChanged(layer int32, f func(status StreamStatus))

func (*StreamTrackerDependencyDescriptor) Reset added in v1.4.4

func (*StreamTrackerDependencyDescriptor) SetPaused added in v1.4.4

func (s *StreamTrackerDependencyDescriptor) SetPaused(paused bool)

func (*StreamTrackerDependencyDescriptor) Start added in v1.4.4

func (*StreamTrackerDependencyDescriptor) Status added in v1.4.4

func (*StreamTrackerDependencyDescriptor) Stop added in v1.4.4

type StreamTrackerDependencyDescriptorLayered added in v1.4.4

type StreamTrackerDependencyDescriptorLayered struct {
	*StreamTrackerDependencyDescriptor
	// contains filtered or unexported fields
}

---------------------------- Layered wrapper for StreamTrackerWorker

func (*StreamTrackerDependencyDescriptorLayered) BitrateTemporalCumulative added in v1.4.4

func (s *StreamTrackerDependencyDescriptorLayered) BitrateTemporalCumulative() []int64

func (*StreamTrackerDependencyDescriptorLayered) OnBitrateAvailable added in v1.4.4

func (s *StreamTrackerDependencyDescriptorLayered) OnBitrateAvailable(f func())

func (*StreamTrackerDependencyDescriptorLayered) OnStatusChanged added in v1.4.4

func (s *StreamTrackerDependencyDescriptorLayered) OnStatusChanged(f func(status StreamStatus))

func (*StreamTrackerDependencyDescriptorLayered) Status added in v1.4.4

type StreamTrackerFrame

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

func (*StreamTrackerFrame) CheckStatus

func (s *StreamTrackerFrame) CheckStatus() StreamStatusChange

func (*StreamTrackerFrame) GetCheckInterval

func (s *StreamTrackerFrame) GetCheckInterval() time.Duration

func (*StreamTrackerFrame) Observe

func (s *StreamTrackerFrame) Observe(hasMarker bool, ts uint32) StreamStatusChange

func (*StreamTrackerFrame) Reset

func (s *StreamTrackerFrame) Reset()

func (*StreamTrackerFrame) Start

func (s *StreamTrackerFrame) Start()

func (*StreamTrackerFrame) Stop

func (s *StreamTrackerFrame) Stop()

type StreamTrackerFrameConfig added in v1.8.1

type StreamTrackerFrameConfig struct {
	MinFPS float64 `yaml:"min_fps,omitempty"`
}

type StreamTrackerFrameParams

type StreamTrackerFrameParams struct {
	Config    StreamTrackerFrameConfig
	ClockRate uint32
	Logger    logger.Logger
}

type StreamTrackerImpl

type StreamTrackerImpl interface {
	Start()
	Stop()
	Reset()

	GetCheckInterval() time.Duration

	Observe(hasMarker bool, ts uint32) StreamStatusChange
	CheckStatus() StreamStatusChange
}

func NewStreamTrackerFrame

func NewStreamTrackerFrame(params StreamTrackerFrameParams) StreamTrackerImpl

func NewStreamTrackerPacket

func NewStreamTrackerPacket(params StreamTrackerPacketParams) StreamTrackerImpl

type StreamTrackerPacket

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

func (*StreamTrackerPacket) CheckStatus

func (s *StreamTrackerPacket) CheckStatus() StreamStatusChange

func (*StreamTrackerPacket) GetCheckInterval

func (s *StreamTrackerPacket) GetCheckInterval() time.Duration

func (*StreamTrackerPacket) Observe

func (s *StreamTrackerPacket) Observe(_hasMarker bool, _ts uint32) StreamStatusChange

func (*StreamTrackerPacket) Reset

func (s *StreamTrackerPacket) Reset()

func (*StreamTrackerPacket) Start

func (s *StreamTrackerPacket) Start()

func (*StreamTrackerPacket) Stop

func (s *StreamTrackerPacket) Stop()

type StreamTrackerPacketConfig added in v1.8.1

type StreamTrackerPacketConfig struct {
	SamplesRequired uint32        `yaml:"samples_required,omitempty"` // number of samples needed per cycle
	CyclesRequired  uint32        `yaml:"cycles_required,omitempty"`  // number of cycles needed to be active
	CycleDuration   time.Duration `yaml:"cycle_duration,omitempty"`
}

type StreamTrackerPacketParams

type StreamTrackerPacketParams struct {
	Config StreamTrackerPacketConfig
	Logger logger.Logger
}

type StreamTrackerParams

type StreamTrackerParams struct {
	StreamTrackerImpl     StreamTrackerImpl
	BitrateReportInterval time.Duration

	Logger logger.Logger
}

type StreamTrackerWorker added in v1.4.4

type StreamTrackerWorker interface {
	Start()
	Stop()
	Reset()
	OnStatusChanged(f func(status StreamStatus))
	OnBitrateAvailable(f func())
	Status() StreamStatus
	BitrateTemporalCumulative() []int64
	SetPaused(paused bool)
	Observe(temporalLayer int32, pktSize int, payloadSize int, hasMarker bool, ts uint32, dd *buffer.ExtDependencyDescriptor)
}

Jump to

Keyboard shortcuts

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