File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff line change @@ -141,8 +141,8 @@ func (w *WebRTCReceiver) SpatialLayer() uint8 {
141141
142142//closeSenders Close all senders from Receiver
143143func (w * WebRTCReceiver ) closeSenders () {
144- w .Lock ()
145- defer w .Unlock ()
144+ w .RLock ()
145+ defer w .RUnlock ()
146146 for _ , sender := range w .senders {
147147 sender .Close ()
148148 }
Original file line number Diff line number Diff line change @@ -100,10 +100,6 @@ func (s *WebRTCSender) Close() {
100100
101101func (s * WebRTCSender ) close () {
102102 s .cancel ()
103- // Remove sender from receiver
104- if recv := s .router .GetReceiver (0 ); recv != nil {
105- recv .DeleteSender (s .id )
106- }
107103 if s .onCloseHandler != nil {
108104 s .onCloseHandler ()
109105 }
@@ -118,6 +114,10 @@ func (s *WebRTCSender) receiveRTCP() {
118114 for {
119115 pkts , err := s .sender .ReadRTCP ()
120116 if err == io .ErrClosedPipe || s .ctx .Err () != nil {
117+ // Remove sender from receiver
118+ if recv := s .router .GetReceiver (0 ); recv != nil {
119+ recv .DeleteSender (s .id )
120+ }
121121 s .Close ()
122122 return
123123 }
You can’t perform that action at this time.
0 commit comments