From fcb05e97c5a31812ecf0ca6f7efa57c485cea9fb Mon Sep 17 00:00:00 2001 From: Raja Subramanian Date: Wed, 26 Feb 2025 09:48:54 +0530 Subject: [PATCH] Properly initialise DD layer selector. (#3467) --- pkg/sfu/videolayerselector/base.go | 4 ++++ pkg/sfu/videolayerselector/dependencydescriptor.go | 6 +++++- pkg/sfu/videolayerselector/videolayerselector.go | 3 +++ 3 files changed, 12 insertions(+), 1 deletion(-) diff --git a/pkg/sfu/videolayerselector/base.go b/pkg/sfu/videolayerselector/base.go index 186ef47c8..181e5d3fb 100644 --- a/pkg/sfu/videolayerselector/base.go +++ b/pkg/sfu/videolayerselector/base.go @@ -54,6 +54,10 @@ func (b *Base) getBase() *Base { return b } +func (b *Base) getLogger() logger.Logger { + return b.logger +} + func (b *Base) IsOvershootOkay() bool { return false } diff --git a/pkg/sfu/videolayerselector/dependencydescriptor.go b/pkg/sfu/videolayerselector/dependencydescriptor.go index 2f652c14b..7d93417e2 100644 --- a/pkg/sfu/videolayerselector/dependencydescriptor.go +++ b/pkg/sfu/videolayerselector/dependencydescriptor.go @@ -51,7 +51,11 @@ func NewDependencyDescriptor(logger logger.Logger) *DependencyDescriptor { } func NewDependencyDescriptorFromOther(vls VideoLayerSelector) *DependencyDescriptor { - return &DependencyDescriptor{Base: vls.getBase()} + return &DependencyDescriptor{ + Base: vls.getBase(), + decisions: NewSelectorDecisionCache(256, 80), + fnWrapper: FrameNumberWrapper{logger: vls.getLogger()}, + } } func (d *DependencyDescriptor) IsOvershootOkay() bool { diff --git a/pkg/sfu/videolayerselector/videolayerselector.go b/pkg/sfu/videolayerselector/videolayerselector.go index 5a20c36fa..883e46aea 100644 --- a/pkg/sfu/videolayerselector/videolayerselector.go +++ b/pkg/sfu/videolayerselector/videolayerselector.go @@ -17,6 +17,7 @@ package videolayerselector import ( "github.com/livekit/livekit-server/pkg/sfu/buffer" "github.com/livekit/livekit-server/pkg/sfu/videolayerselector/temporallayerselector" + "github.com/livekit/protocol/logger" ) type VideoLayerSelectorResult struct { @@ -31,6 +32,8 @@ type VideoLayerSelectorResult struct { type VideoLayerSelector interface { getBase() *Base + getLogger() logger.Logger + IsOvershootOkay() bool SetTemporalLayerSelector(tls temporallayerselector.TemporalLayerSelector)