From 3eb4a21dedfcacb708be731b5c906a3363eff046 Mon Sep 17 00:00:00 2001 From: Mark Hills Date: Fri, 17 Mar 2023 16:41:56 +0000 Subject: [PATCH 1/3] Correct RTCRtpSender.addTrack, as the stream is optional The compiler's definition of this function requires one or more streams, and differs from references [1][2] which require zero or more. Code using addTrack(track) is valid, tested in Chromium 113.0.5659.0 and later. [1] https://developer.mozilla.org/en-US/docs/Web/API/RTCPeerConnection/addTrack [2] https://www.w3.org/TR/webrtc/#ref-for-dom-rtcpeerconnection-addtrack-8 Fixes: https://github.com/google/closure-compiler/issues/4071 --- externs/browser/w3c_rtc.js | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/externs/browser/w3c_rtc.js b/externs/browser/w3c_rtc.js index 6c5559fdba6..0620fc6561e 100644 --- a/externs/browser/w3c_rtc.js +++ b/externs/browser/w3c_rtc.js @@ -3688,11 +3688,10 @@ RTCPeerConnection.prototype.removeStream = function(stream) {}; /** * @param {!MediaStreamTrack} track - * @param {!MediaStream} stream - * @param {...MediaStream} var_args Additional streams. + * @param {...MediaStream} var_args Optional streams. * @return {!RTCRtpSender} */ -RTCPeerConnection.prototype.addTrack = function(track, stream, var_args) {}; +RTCPeerConnection.prototype.addTrack = function(track, var_args) {}; /** * @param {!MediaStreamTrack|string} trackOrKind From 837ec1911aac38243873fc5d55df9f92541d7b89 Mon Sep 17 00:00:00 2001 From: Mark Hills Date: Fri, 22 Sep 2023 17:37:08 +0100 Subject: [PATCH 2/3] Correct RTCTrackEvent which inherits from Event This spec [1] is consistent with the MDN documentation [2] in this regard. [1] https://www.w3.org/TR/webrtc/#rtctrackevent [2] https://developer.mozilla.org/en-US/docs/Web/API/RTCTrackEvent --- externs/browser/w3c_rtc.js | 1 + 1 file changed, 1 insertion(+) diff --git a/externs/browser/w3c_rtc.js b/externs/browser/w3c_rtc.js index 0620fc6561e..8e95b382320 100644 --- a/externs/browser/w3c_rtc.js +++ b/externs/browser/w3c_rtc.js @@ -1836,6 +1836,7 @@ ImageCapture.prototype.track; * @see https://www.w3.org/TR/webrtc/#rtctrackevent * @param {string} type * @param {!Object} eventInitDict + * @extends {Event} * @constructor */ function RTCTrackEvent(type, eventInitDict) {} From 0005e47398fe3035a1fd68058725097d3dda86f7 Mon Sep 17 00:00:00 2001 From: Mark Hills Date: Fri, 21 Mar 2025 10:44:41 +0000 Subject: [PATCH 3/3] Correct RTCEncoded{Audio,Video}Frame whose member is not read-only The Mozilla documentation [1][2] states this parameter is not read-only and it this behaviour is useful for the purpose of replacing the buffer with another one. This matches the information in [3][4]. [1] https://developer.mozilla.org/en-US/docs/Web/API/RTCEncodedAudioFrame [2] https://developer.mozilla.org/en-US/docs/Web/API/RTCEncodedVideoFrame [3] https://www.w3.org/TR/webrtc-encoded-transform/#RTCEncodedAudioFrame-members [4] https://www.w3.org/TR/webrtc-encoded-transform/#RTCEncodedVideoFrame-members --- externs/browser/w3c_rtc.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/externs/browser/w3c_rtc.js b/externs/browser/w3c_rtc.js index 8e95b382320..7cd4a7f9e3e 100644 --- a/externs/browser/w3c_rtc.js +++ b/externs/browser/w3c_rtc.js @@ -684,7 +684,7 @@ RTCEncodedVideoFrameMetadata.prototype.width; function RTCEncodedVideoFrame() {} /** - * @const {!ArrayBuffer} + * @type {!ArrayBuffer} */ RTCEncodedVideoFrame.prototype.data; @@ -732,7 +732,7 @@ RTCEncodedAudioFrameMetadata.prototype.synchronizationSource; function RTCEncodedAudioFrame() {} /** - * @const {!ArrayBuffer} + * @type {!ArrayBuffer} */ RTCEncodedAudioFrame.prototype.data;