From e70f6fce4fecb1878557322b39fce98e57aaef0a Mon Sep 17 00:00:00 2001 From: Nils Ohlmeier Date: Mon, 20 Oct 2025 15:47:27 -0600 Subject: [PATCH] Preferr RRID for retransmission over RTX --- rtptransceiver.go | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/rtptransceiver.go b/rtptransceiver.go index 70ad4c785f9..89837c4ed77 100644 --- a/rtptransceiver.go +++ b/rtptransceiver.go @@ -101,6 +101,18 @@ func (t *RTPTransceiver) setCodecPreferencesFromRemoteDescription(media *sdp.Med return } + simulcast := false + if len(getRids(media)) > 0 { + extensions, err := rtpExtensionsFromMediaDescription(media) + if err == nil { + for extension := range extensions { + if extension == sdp.SDESRepairRTPStreamIDURI { + simulcast = true + } + } + } + } + // make a copy as this slice is modified leftCodecs := append([]RTPCodecParameters{}, t.api.mediaEngine.getCodecsByKind(t.kind)...) @@ -172,6 +184,10 @@ func (t *RTPTransceiver) setCodecPreferencesFromRemoteDescription(media *sdp.Med continue } + if simulcast { + continue + } + for _, rtxCodec := range leftCodecs { if rtxCodec.PayloadType == mediaEngineRTX { filteredCodecs = append(filteredCodecs, rtxCodec)