From dafdc36e3eb6355b63eb8a14e127be6acf2bd34d Mon Sep 17 00:00:00 2001 From: Raja Subramanian Date: Thu, 8 Jan 2026 02:13:03 +0530 Subject: [PATCH] Add option to force simuclast codec. (#4226) --- pkg/rtc/mediatrack.go | 5 +++++ pkg/rtc/participant.go | 2 ++ 2 files changed, 7 insertions(+) diff --git a/pkg/rtc/mediatrack.go b/pkg/rtc/mediatrack.go index 4229b6345..cc6ad170d 100644 --- a/pkg/rtc/mediatrack.go +++ b/pkg/rtc/mediatrack.go @@ -97,6 +97,7 @@ type MediaTrackParams struct { PreferVideoSizeFromMedia bool EnableRTPStreamRestartDetection bool UpdateTrackInfoByVideoSizeChange bool + ForceBackupCodecPolicySimulcast bool } func NewMediaTrack(params MediaTrackParams, ti *livekit.TrackInfo) *MediaTrack { @@ -105,6 +106,10 @@ func NewMediaTrack(params MediaTrackParams, ti *livekit.TrackInfo) *MediaTrack { backupCodecPolicy: ti.BackupCodecPolicy, } + if t.params.ForceBackupCodecPolicySimulcast { + t.backupCodecPolicy = livekit.BackupCodecPolicy_SIMULCAST + } + if t.backupCodecPolicy != livekit.BackupCodecPolicy_SIMULCAST && len(ti.Codecs) > 1 { t.regressionTargetCodec = mime.NormalizeMimeType(ti.Codecs[1].MimeType) t.params.Logger.Debugw("track enabled codec regression", "regressionCodec", t.regressionTargetCodec) diff --git a/pkg/rtc/participant.go b/pkg/rtc/participant.go index 2c2a08b97..1992d4015 100644 --- a/pkg/rtc/participant.go +++ b/pkg/rtc/participant.go @@ -222,6 +222,7 @@ type ParticipantParams struct { UseSinglePeerConnection bool EnableDataTracks bool EnableRTPStreamRestartDetection bool + ForceBackupCodecPolicySimulcast bool } type ParticipantImpl struct { @@ -3287,6 +3288,7 @@ func (p *ParticipantImpl) addMediaTrack(signalCid string, ti *livekit.TrackInfo) PreferVideoSizeFromMedia: p.params.PreferVideoSizeFromMedia, EnableRTPStreamRestartDetection: p.params.EnableRTPStreamRestartDetection, UpdateTrackInfoByVideoSizeChange: p.params.UseOneShotSignallingMode, + ForceBackupCodecPolicySimulcast: p.params.ForceBackupCodecPolicySimulcast, }, ti) mt.OnSubscribedMaxQualityChange(p.onSubscribedMaxQualityChange)