mirror of
https://github.com/pion/webrtc.git
synced 2025-12-24 11:51:03 +08:00
Disable MediaEngine Copy by Default
If an API is shared between PeerConnections they would use the same MediaEngine. A MediaEngine contains negotiated PayloadTypes so if the PeerConnections were answering you would end up in invalid states. Add DisableMediaEngineCopy to SettingEngine in case user needs old behavior. Resolves #1662
This commit is contained in:
@@ -271,6 +271,16 @@ func (m *MediaEngine) getHeaderExtensionID(extension RTPHeaderExtensionCapabilit
|
||||
return
|
||||
}
|
||||
|
||||
// copy copies any user modifiable state of the MediaEngine
|
||||
// all internal state is reset
|
||||
func (m *MediaEngine) copy() *MediaEngine {
|
||||
return &MediaEngine{
|
||||
videoCodecs: append([]RTPCodecParameters{}, m.videoCodecs...),
|
||||
audioCodecs: append([]RTPCodecParameters{}, m.audioCodecs...),
|
||||
headerExtensions: append([]mediaEngineHeaderExtension{}, m.headerExtensions...),
|
||||
}
|
||||
}
|
||||
|
||||
func (m *MediaEngine) getCodecByPayload(payloadType PayloadType) (RTPCodecParameters, RTPCodecType, error) {
|
||||
for _, codec := range m.negotiatedVideoCodecs {
|
||||
if codec.PayloadType == payloadType {
|
||||
|
||||
Reference in New Issue
Block a user