From 41e2571e2dac4ca0b253a3e2368c06311cc5e4fc Mon Sep 17 00:00:00 2001 From: cnderrauber Date: Thu, 6 Jan 2022 16:49:46 +0800 Subject: [PATCH] Make setMid of Transceiver public in some case like session migration from one sfu node to another, we need manual set mid of transceiver instead of auto generate, to make mid consistent between to sfu node. --- peerconnection.go | 4 ++-- rtptransceiver.go | 5 +++-- 2 files changed, 5 insertions(+), 4 deletions(-) diff --git a/peerconnection.go b/peerconnection.go index e1694216fde..63fd6c354be 100644 --- a/peerconnection.go +++ b/peerconnection.go @@ -660,7 +660,7 @@ func (pc *PeerConnection) CreateOffer(options *OfferOptions) (SessionDescription continue } pc.greaterMid++ - err = t.setMid(strconv.Itoa(pc.greaterMid)) + err = t.SetMid(strconv.Itoa(pc.greaterMid)) if err != nil { return SessionDescription{}, err } @@ -1092,7 +1092,7 @@ func (pc *PeerConnection) SetRemoteDescription(desc SessionDescription) error { } if t.Mid() == "" { - if err := t.setMid(midValue); err != nil { + if err := t.SetMid(midValue); err != nil { return err } } diff --git a/rtptransceiver.go b/rtptransceiver.go index b47e87e48b9..4ff4ead7d64 100644 --- a/rtptransceiver.go +++ b/rtptransceiver.go @@ -1,3 +1,4 @@ +//go:build !js // +build !js package webrtc @@ -115,8 +116,8 @@ func (t *RTPTransceiver) Receiver() *RTPReceiver { return nil } -// setMid sets the RTPTransceiver's mid. If it was already set, will return an error. -func (t *RTPTransceiver) setMid(mid string) error { +// SetMid sets the RTPTransceiver's mid. If it was already set, will return an error. +func (t *RTPTransceiver) SetMid(mid string) error { if currentMid := t.Mid(); currentMid != "" { return fmt.Errorf("%w: %s to %s", errRTPTransceiverCannotChangeMid, currentMid, mid) }