Skip to content

Commit a5ebe77

Browse files
committed
Check for closed receiver before setting up rid
1 parent f3177f8 commit a5ebe77

File tree

2 files changed

+11
-3
lines changed

2 files changed

+11
-3
lines changed

peerconnection.go

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1875,9 +1875,6 @@ func (pc *PeerConnection) handleIncomingSSRC(rtpStream *srtp.ReadStreamSRTP, ssr
18751875
}
18761876

18771877
if rsid != "" {
1878-
receiver.mu.Lock()
1879-
defer receiver.mu.Unlock()
1880-
18811878
return receiver.receiveForRtx(SSRC(0), rsid, streamInfo, readStream, interceptor, rtcpReadStream, rtcpInterceptor)
18821879
}
18831880

rtpreceiver.go

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -552,6 +552,10 @@ func (r *RTPReceiver) receiveForRid(
552552
r.mu.Lock()
553553
defer r.mu.Unlock()
554554

555+
if r.haveClosed() {
556+
return nil, io.EOF
557+
}
558+
555559
for i := range r.tracks {
556560
if r.tracks[i].track.RID() == rid {
557561
r.tracks[i].track.mu.Lock()
@@ -587,6 +591,13 @@ func (r *RTPReceiver) receiveForRtx(
587591
rtcpReadStream *srtp.ReadStreamSRTCP,
588592
rtcpInterceptor interceptor.RTCPReader,
589593
) error {
594+
r.mu.Lock()
595+
defer r.mu.Unlock()
596+
597+
if r.haveClosed() {
598+
return io.EOF
599+
}
600+
590601
var track *trackStreams
591602
if ssrc != 0 && len(r.tracks) == 1 {
592603
track = &r.tracks[0]

0 commit comments

Comments
 (0)