From 7183dcaad3ba49c6b5417c602bbae3a79f318dd5 Mon Sep 17 00:00:00 2001 From: boks1971 Date: Fri, 15 Aug 2025 12:58:55 +0530 Subject: [PATCH] conditional checks --- pkg/rtc/participant.go | 2 +- pkg/rtc/transport.go | 1 - pkg/rtc/transportmanager.go | 44 +++++++++++++++++++++++++------------ 3 files changed, 31 insertions(+), 16 deletions(-) diff --git a/pkg/rtc/participant.go b/pkg/rtc/participant.go index 81813991f..79ac749a9 100644 --- a/pkg/rtc/participant.go +++ b/pkg/rtc/participant.go @@ -2988,7 +2988,7 @@ func (p *ParticipantImpl) mediaTrackReceived(track sfu.TrackRemote, rtpReceiver p.pendingTracksLock.Lock() newTrack := false - mid := p.TransportManager.GetMid(rtpReceiver) + mid := p.TransportManager.GetPublisherMid(rtpReceiver) p.pubLogger.Debugw( "media track received", "kind", track.Kind().String(), diff --git a/pkg/rtc/transport.go b/pkg/rtc/transport.go index 6bb96ef8d..eac019fe2 100644 --- a/pkg/rtc/transport.go +++ b/pkg/rtc/transport.go @@ -1207,7 +1207,6 @@ func (t *PCTransport) GetRTT() (float64, bool) { return scps.CurrentRoundTripTime, true } -// IsEstablished returns true if the PeerConnection has been established func (t *PCTransport) IsEstablished() bool { return t.pc.ConnectionState() != webrtc.PeerConnectionStateNew } diff --git a/pkg/rtc/transportmanager.go b/pkg/rtc/transportmanager.go index 24363f22b..f6c383a01 100644 --- a/pkg/rtc/transportmanager.go +++ b/pkg/rtc/transportmanager.go @@ -209,27 +209,51 @@ func (t *TransportManager) SubscriberClose() { } func (t *TransportManager) HasPublisherEverConnected() bool { - return t.publisher.HasEverConnected() + if t.params.SinglePeerConnection { + return t.subscriber.HasEverConnected() + } else { + return t.publisher.HasEverConnected() + } } func (t *TransportManager) IsPublisherEstablished() bool { - return t.publisher.IsEstablished() + if t.params.SinglePeerConnection { + return t.subscriber.IsEstablished() + } else { + return t.publisher.IsEstablished() + } } func (t *TransportManager) GetPublisherRTT() (float64, bool) { - return t.publisher.GetRTT() + if t.params.SinglePeerConnection { + return t.subscriber.GetRTT() + } else { + return t.publisher.GetRTT() + } } func (t *TransportManager) GetPublisherMid(rtpReceiver *webrtc.RTPReceiver) string { - return t.publisher.GetMid(rtpReceiver) + if t.params.SinglePeerConnection { + return t.subscriber.GetMid(rtpReceiver) + } else { + return t.publisher.GetMid(rtpReceiver) + } } func (t *TransportManager) GetPublisherRTPReceiver(mid string) *webrtc.RTPReceiver { - return t.publisher.GetRTPReceiver(mid) + if t.params.SinglePeerConnection { + return t.subscriber.GetRTPReceiver(mid) + } else { + return t.publisher.GetRTPReceiver(mid) + } } func (t *TransportManager) WritePublisherRTCP(pkts []rtcp.Packet) error { - return t.publisher.WriteRTCP(pkts) + if t.params.SinglePeerConnection { + return t.subscriber.WriteRTCP(pkts) + } else { + return t.publisher.WriteRTCP(pkts) + } } func (t *TransportManager) GetSubscriberRTT() (float64, bool) { @@ -274,14 +298,6 @@ func (t *TransportManager) RemoveTrackLocal(sender *webrtc.RTPSender) error { } } -func (t *TransportManager) GetMid(rtpReceiver *webrtc.RTPReceiver) string { - if t.params.SinglePeerConnection { - return t.subscriber.GetMid(rtpReceiver) - } else { - return t.publisher.GetMid(rtpReceiver) - } -} - func (t *TransportManager) WriteSubscriberRTCP(pkts []rtcp.Packet) error { if t.params.UseOneShotSignallingMode { return t.publisher.WriteRTCP(pkts)