Skip to content

Commit 1f393ef

Browse files
committed
Fixed bug in copy()
1 parent 29d6e41 commit 1f393ef

File tree

1 file changed

+9
-6
lines changed

1 file changed

+9
-6
lines changed

mediaengine.go

Lines changed: 9 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -358,9 +358,10 @@ func (m *MediaEngine) copy() *MediaEngine {
358358
m.mu.Lock()
359359
defer m.mu.Unlock()
360360
cloned := &MediaEngine{
361-
videoCodecs: append([]RTPCodecParameters{}, m.videoCodecs...),
362-
audioCodecs: append([]RTPCodecParameters{}, m.audioCodecs...),
363-
headerExtensions: append([]mediaEngineHeaderExtension{}, m.headerExtensions...),
361+
videoCodecs: append([]RTPCodecParameters{}, m.videoCodecs...),
362+
audioCodecs: append([]RTPCodecParameters{}, m.audioCodecs...),
363+
headerExtensions: append([]mediaEngineHeaderExtension{}, m.headerExtensions...),
364+
negotiateMultiCodecs: m.negotiateMultiCodecs,
364365
}
365366
if len(m.headerExtensions) > 0 {
366367
cloned.negotiatedHeaderExtensions = map[int]mediaEngineHeaderExtension{}
@@ -596,9 +597,9 @@ func (m *MediaEngine) updateFromRemoteDescription(desc sdp.SessionDescription) e
596597
}
597598

598599
switch {
599-
case (!m.negotiatedAudio || m.negotiateMultiCodecs) && typ == RTPCodecTypeAudio:
600+
case !m.negotiatedAudio && typ == RTPCodecTypeAudio:
600601
m.negotiatedAudio = true
601-
case (!m.negotiatedVideo || m.negotiateMultiCodecs) && typ == RTPCodecTypeVideo:
602+
case !m.negotiatedVideo && typ == RTPCodecTypeVideo:
602603
m.negotiatedVideo = true
603604
default:
604605
// update header extesions from remote sdp if codec is negotiated, Firefox
@@ -609,7 +610,9 @@ func (m *MediaEngine) updateFromRemoteDescription(desc sdp.SessionDescription) e
609610
return err
610611
}
611612

612-
continue
613+
if !m.negotiateMultiCodecs || (typ != RTPCodecTypeAudio && typ != RTPCodecTypeVideo) {
614+
continue
615+
}
613616
}
614617

615618
codecs, err := codecsFromMediaDescription(media)

0 commit comments

Comments
 (0)