From ef4bc0b46db5be4536219d18468ff04ba2a0e4a7 Mon Sep 17 00:00:00 2001 From: Raja Subramanian Date: Mon, 26 Feb 2024 15:15:04 +0530 Subject: [PATCH] Support no dynacast pause. (#2512) --- pkg/rtc/dynacastmanager.go | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/pkg/rtc/dynacastmanager.go b/pkg/rtc/dynacastmanager.go index 896e36449..0fed210ce 100644 --- a/pkg/rtc/dynacastmanager.go +++ b/pkg/rtc/dynacastmanager.go @@ -59,9 +59,11 @@ func NewDynacastManager(params DynacastManagerParams) *DynacastManager { dynacastQuality: make(map[string]*DynacastQuality), maxSubscribedQuality: make(map[string]livekit.VideoQuality), committedMaxSubscribedQuality: make(map[string]livekit.VideoQuality), - maxSubscribedQualityDebounce: debounce.New(params.DynacastPauseDelay), qualityNotifyOpQueue: utils.NewOpsQueue("quality-notify", 64, true), } + if params.DynacastPauseDelay > 0 { + d.maxSubscribedQualityDebounce = debounce.New(params.DynacastPauseDelay) + } d.qualityNotifyOpQueue.Start() return d } @@ -223,7 +225,7 @@ func (d *DynacastManager) update(force bool) { return } - if downgradesOnly { + if downgradesOnly && d.maxSubscribedQualityDebounce != nil { if !d.maxSubscribedQualityDebouncePending { d.params.Logger.Debugw("debouncing quality downgrade", "committedMaxSubscribedQuality", d.committedMaxSubscribedQuality, @@ -245,8 +247,10 @@ func (d *DynacastManager) update(force bool) { } // clear debounce on send - d.maxSubscribedQualityDebounce(func() {}) - d.maxSubscribedQualityDebouncePending = false + if d.maxSubscribedQualityDebounce != nil { + d.maxSubscribedQualityDebounce(func() {}) + d.maxSubscribedQualityDebouncePending = false + } d.params.Logger.Debugw("committing quality change", "force", force,