Skip to content

Commit d893dcf

Browse files
committed
Simplify startRTPReceivers
pc.startReceiver will set the receive flag for Transceivers so no reason to do extra filtering here. Relates to #1016
1 parent 6ee528d commit d893dcf

File tree

1 file changed

+8
-6
lines changed

1 file changed

+8
-6
lines changed

peerconnection.go

Lines changed: 8 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -961,11 +961,10 @@ func (pc *PeerConnection) startRTPReceivers(incomingTracks []trackDetails, curre
961961
}
962962
}
963963

964+
unhandledTracks := incomingTracks[:0]
964965
for i := range incomingTracks {
966+
trackHandled := false
965967
for j := range localTransceivers {
966-
if len(incomingTracks) <= i || len(localTransceivers) <= j {
967-
break
968-
}
969968
t := localTransceivers[j]
970969
incomingTrack := incomingTracks[i]
971970

@@ -980,15 +979,18 @@ func (pc *PeerConnection) startRTPReceivers(incomingTracks []trackDetails, curre
980979
continue
981980
}
982981

983-
incomingTracks = append(incomingTracks[:i], incomingTracks[i+1:]...)
984-
localTransceivers = append(localTransceivers[:j], localTransceivers[j+1:]...)
985982
pc.startReceiver(incomingTrack, t.Receiver())
983+
trackHandled = true
986984
break
987985
}
986+
987+
if !trackHandled {
988+
unhandledTracks = append(unhandledTracks, incomingTracks[i])
989+
}
988990
}
989991

990992
if remoteIsPlanB {
991-
for _, incoming := range incomingTracks {
993+
for _, incoming := range unhandledTracks {
992994
t, err := pc.AddTransceiverFromKind(incoming.kind, RtpTransceiverInit{
993995
Direction: RTPTransceiverDirectionSendrecv,
994996
})

0 commit comments

Comments
 (0)