I have identified a issue related to WebRTC video codec negotiation during screen sharing sessions in Safari. This problem occurs when two participants are involved in a video call, one using Safari on macOS (User A) and the other using Chrome/Edge on a desktop (User B). The following steps outline the issue: User A initiates a video call to User B. User B answers the call with video enabled. Both users turn off their cameras. User A begins sharing their screen. User B attempts to share their screen while User A is already sharing. The issue arises when the participants initially negotiate video codecs, either "rtx/9000" or "H264/9000." During subsequent renegotiation, User B sends the video codec "a=rtpmap:122 rtx/9000" for screen sharing. User A accepts this codec, but when User A attempts to share their screen, there are conflicting payload types with different codec names (a=rtpmap:122 H264/9000) in the Session Description Protocol (SDP). This results in the following error: Failed to execute 'setLocalDescription' on 'RTCPeerConnection': Failed to parse SessionDescription. a=rtpmap:122 H264/90000 Duplicate payload type with conflicting codec name or clock rate. Expected behaviour: sdp should not consist duplicate payload.
known libwebrtc issue, see https://bugs.chromium.org/p/webrtc/issues/detail?id=12747
<rdar://problem/116922568>