Skip to content

Commit 0848604

Browse files
tulirtexuf
authored andcommitted
Fix screen sharing on Firefox 113 (matrix-org#3282)
`getCapabilities` exists now(?), but `setCodecPreferences` doesn't, which means it would throw an error and fail the call. Signed-off-by: Tulir Asokan <[email protected]>
1 parent 62fbb9b commit 0848604

File tree

1 file changed

+3
-2
lines changed

1 file changed

+3
-2
lines changed

src/webrtc/call.ts

+3-2
Original file line numberDiff line numberDiff line change
@@ -2315,7 +2315,7 @@ export class MatrixCall extends TypedEventEmitter<CallEvent, CallEventHandlerMap
23152315
* [96685:23:0518/162603.933430:ERROR:sdp_offer_answer.cc(4302)] Failed to set local video description recv parameters for m-section with mid='2'. (INVALID_PARAMETER)
23162316
*/
23172317
private getRidOfRTXCodecs(): void {
2318-
// RTCRtpReceiver.getCapabilities and RTCRtpSender.getCapabilities don't seem to be supported on FF
2318+
// RTCRtpReceiver.getCapabilities and RTCRtpSender.getCapabilities don't seem to be supported on FF before v113
23192319
if (!RTCRtpReceiver.getCapabilities || !RTCRtpSender.getCapabilities) return;
23202320

23212321
const recvCodecs = RTCRtpReceiver.getCapabilities("video")!.codecs;
@@ -2332,7 +2332,8 @@ export class MatrixCall extends TypedEventEmitter<CallEvent, CallEventHandlerMap
23322332
const screenshareVideoTransceiver = this.transceivers.get(
23332333
getTransceiverKey(SDPStreamMetadataPurpose.Screenshare, "video"),
23342334
);
2335-
if (screenshareVideoTransceiver) screenshareVideoTransceiver.setCodecPreferences(codecs);
2335+
// setCodecPreferences isn't supported on FF (as of v113)
2336+
screenshareVideoTransceiver?.setCodecPreferences?.(codecs);
23362337
}
23372338

23382339
private onNegotiationNeeded = async (): Promise<void> => {

0 commit comments

Comments
 (0)