15:01:15 RRSAgent has joined #webrtc 15:01:19 logging to https://www.w3.org/2026/05/19-webrtc-irc 15:01:19 Zakim has joined #webrtc 15:01:19 RRSAgent, make log public 15:02:13 Meeting: WebRTC May 2026 meeting 15:02:13 Agenda: https://www.w3.org/2011/04/webrtc/wiki/Ma__19_2026 15:02:13 Slideset: https://docs.google.com/presentation/d/15M9QqV_fcYXBmRhkiiIwbncf4RsALK04LPeqbTHetMk/ 15:02:13 Chairs: Guido, Jan-Ivar, Youenn 15:02:14 Present: Guido, Dom, Jan-Ivar, Harald, PeterT, KacperWasniowski, Youenn 15:02:35 Present+ ErikSprang 15:02:50 Present+ SunShin 15:03:33 Present+ TimP 15:04:02 Recording is starting 15:05:08 Present+ DanielVogelheim 15:05:33 Present+ BartoszHabrajski 15:05:46 Topic: -> https://github.com/w3c/mediacapture-screen-share/issues/330 PIP window Excluded while getDisplayMedia 15:05:46 [slide 10] 15:06:16 [slide 11] 15:06:38 [slide 12] 15:07:06 [slide 13] 15:07:54 Youenn: is this a hint from the user agent or web site? 15:07:58 Tove: web app 15:08:31 Jan-Ivar: PiP window - limited to opened by the web page, both video and document PiP? 15:08:53 ... is this only for screen sharing? can't this be done by using tab or window capture? 15:09:17 Tove: this is for cases where you want to share your whole screen, e.g. because you'll want to show other apps 15:09:37 ... also, full screen sharing remain the options many users pick for convenience 15:10:06 TimP: won't it be confusing for end users which window will or will not be included in what gets shared? 15:10:46 Tove: that's a valid concern; I think it has become common that floating UIs get treated differently from other windows 15:11:19 Jan-Ivar: I like that it's a hint - I assume the UA would allow to override the decision 15:11:37 cabanier has joined #webrtc 15:11:37 geheimnis` has joined #webrtc 15:11:37 slightlyoff has joined #webrtc 15:11:37 timeless has joined #webrtc 15:11:37 Josh_Soref has joined #webrtc 15:11:40 ... no issue with the API, but would hope for a better definition of what constitutes a PiP window 15:11:56 Tove: there is a spec about opening a PiP window from a web page 15:12:22 Jan-Ivar: so this would be limited to PiP windows as enabled by Video PiP and document PiP, not popups or permission dialogs? 15:12:24 Tove: right 15:12:43 Youenn: what would be the default? "include"? 15:12:44 Tove: yes 15:12:52 Youenn: sounds reasonable 15:13:22 RESOLVED: Proceed with a PR to screen-share-extensions 15:13:38 Present+ ThomasNguyen 15:13:43 Topic: -> https://github.com/w3c/mediacapture-extensions/pull/168 Capabilites Element 15:13:43 [slide 16] 15:16:17 [slide 17] 15:17:21 englishm has joined #webrtc 15:17:21 jh has joined #webrtc 15:17:27 cabanier has joined #webrtc 15:17:27 geheimnis` has joined #webrtc 15:17:27 slightlyoff has joined #webrtc 15:17:27 timeless has joined #webrtc 15:17:27 Josh_Soref has joined #webrtc 15:18:18 Jan-Ivar: the constraints dictionary is slightly different from gUM - e.g. setting video=false or audio=false 15:18:30 ... is the assumption is that using that element means asking for both? 15:18:42 cabanier has joined #webrtc 15:18:42 geheimnis` has joined #webrtc 15:18:42 slightlyoff has joined #webrtc 15:18:42 timeless has joined #webrtc 15:18:42 Josh_Soref has joined #webrtc 15:18:43 Thomas: part of the issues we want to resolve 15:18:46 [slide 18] 15:19:55 Youenn: do we need to set constraints for the element; if so, we should probably restrict it to prevent audio=false 15:20:20 ... but is it needed first? if the main use case is to have a prompt for permission for capture, it's not really needed it 15:20:38 ... if it's to get one prompt for camera and microphone, then maybe not 15:21:10 ... I understand this isn't part of the current prototype, if so we should wait for actual demand for this 15:21:28 Thomas: the goal is to enable configure audio and videos from the constraints 15:21:58 Jan-Ivar: I think long term should be used for cases where and aren't a good fit 15:22:37 ... if that's acceptable, then we could offer a migration path away from contraints audio=false 15:22:56 Jan-Ivar: what happens if you don't specific setConstraints - my expectation is that it would ask for both with default constraints 15:23:03 Thomas: yes 15:23:11 Jan-Ivar: generally supportive of that API 15:23:45 Thomas: right now setting audio=false would be an error 15:24:43 Jan-Ivar: is it still the case that the permission tied to access to and opening of a physical device? 15:25:15 thomas: yes; there are investigations in that space around private mode, but no concrete proposal 15:25:26 Jan-Ivar: next steps? merge PR and iterate? 15:25:50 Thomas: I would like it if we can merge and iterate; but maybe we can make progress on a couple of the listed issues 15:27:15 Youenn: OK with merging, but maybe best to remove setConstraints from the PR and adding it back later; or whether should react to camera stopping; one of my comments was that applying state monitoring we do for for as well; if we're unclear, maybe best to merge a smaller version of the PR where consensus is clear 15:27:30 Jan-Ivar: SGTM, but I would want setConstraints included since it already doesn't allow false 15:27:37 [slide 19] 15:27:56 Thomas: we have already 5 issues for later iteration 15:28:55 Jan-Ivar: re secure context - an element can't be restricted to secure context, but it would probably not functional outside of secure context and generate an error 15:29:14 Daniel: I had a different proposal, but I'm not sure there is a precedent for ti 15:30:12 Jan-Ivar: queuing for fire event? 15:30:24 Youenn: nothing controversial, but needs some tightening 15:31:10 Guido: so we land a subset of PR with consensus? 15:31:18 Dom: does that or not include setConstraints? 15:31:51 Youenn: if it's implemented, that may change my position; overall, I would prefer keeping as simple as possible since down the line we prefer and as target 15:32:21 Jan-Ivar: setConstraints so far only use to disable device types? 15:32:54 Thomas: right; the plan is to have generate an error with audio=false or video=false later on 15:33:08 Youenn: so setConstraints is part of MVP based on demand from web developers? 15:33:31 englishm has joined #webrtc 15:33:31 jh has joined #webrtc 15:33:43 ... I don't see setContraints exposed in usermedia element in Chrome source 15:34:17 Thomas: it's defined separately from the main element 15:34:27 Youenn: oh I see - it did ship with allowing audio=false 15:34:31 Thomas: we plan to change that 15:34:40 Youenn: then OK, let's keep it in PR 15:35:07 englishm has joined #webrtc 15:35:07 jh has joined #webrtc 15:35:31 TimP: can we be confident that the impact of gUM on ice candidates will also apply to ? 15:35:57 Jan-Ivar: that's how the spec describes it since it calls explicit gUM 15:36:12 ... we could make it more explicit with a Note 15:37:23 Youenn: I think that's only defined on the IETF side of things, not in mediacapture and streams 15:37:48 Jan-Ivar: that may well be correct; if so, we should file an issue with the IETF IP Mode draft 15:38:21 ... there is also work on local network permissions in the WICG which might provide a better hook for this 15:39:30 RESOLVED: Merge PR at editors call taking into account comments on PR (e.g. state monitoring for ) 15:40:23 Youenn: re IP mode, we can add notes to our WebRTC docs, and consider filing issues at the IETF 15:41:16 Harald: I think we should separate the concept of having permissions to access IP addresses in WebRTC, which would then activated by different mechanisms (incl gUM) 15:41:35 ... some of this may need updates in IETF land, but first updates to WebRTC 15:42:07 Youenn: we re-use the IP modes, and anchor this in the WebRTC spec 15:42:19 TimP: I'll file an issue in https://github.com/w3c/webrtc-pc/issues/ 15:43:02 Jan-Ivar: I've filed a related issue wrt mDNS and the relationship to IP mode where there are already compat issues (e.g. permissions vs active state) 15:43:20 Topic: -> https://github.com/w3c/webrtc-rtptransport/ RTCRtpTransport update 15:43:20 [slide 23] 15:44:09 Present+ PhilipEliasson 15:45:13 englishm has joined #webrtc 15:45:13 jh has joined #webrtc 15:45:49 [slide 24] 15:46:53 [slide 26] 15:49:08 [slide 27] 15:51:43 [slide 28] 15:53:26 [slide 29] 15:54:19 [slide 30] 15:55:58 Youenn: have you tried implementing an app with WebTransport and RTCTransport and compare their efficiency? 15:56:27 ... since one of the goals is to improve perf 15:57:06 Philip: in the prototype, we basically a wasm version of PC to check whether things ran well, and they did 15:57:06 ... we haven't made comparisons with other transports 15:57:50 ... PC needs feel pretty different from other transports 15:58:21 ... RTCTransport is P2P (which webtransport doesn't support), and you can implement your own congestion control 15:58:52 Youenn: you're saying WebTransport doesn't provide enough e.g. timing information to provide the same level of control 15:59:17 Philip: yes, there would be quite a bit limitations in terms of bandwidth estimation 15:59:35 Youenn: thanks; I remain a bit unclear about the direction of the API 15:59:43 Jan-Ivar: +1 on more data on performance 16:00:05 ... WebTransport already does datagrams; comparison with data channels performance would be interesting 16:00:32 ... as I've mentioned before, I don't think having a total bespoke API just for P2P purposes feel not optimal 16:01:12 ... taking away control from the browser on congestion control feels tricky - e.g. how to deal with multiple tabs acting simultaneously 16:01:56 Philip: AFAIU, WebTransport doesn't provide custom congestion control; BBR doesn't perform well in some use cases 16:02:30 Jan-Ivar: congestion control isn't specified, although there is an API control to ask for lower latency (not implemented yet) - that could be improvide if that's the only for a different API 16:03:06 Philip: two main reasons: custom congestion control (vs a fixed low latency option in WebTransport) which allows quick iteration 16:03:34 ... there is no low latency congestion control that would work for every applications 16:03:57 ... a fixed approach doesn't allow to adapt to application-specific behaviors 16:04:46 Jan-Ivar: performance measurements would help, esp as this is being done on the main thread 16:06:53 TimP: data channels don't work under high loss situations 16:07:45 ... playing with RTCTransport allows to deal much better and much more flexibly in terms of congestion control 16:07:57 ... I'm very supportive of this and have played with it to try it out 16:08:11 ... but we haven't made formal comparisons and measurements 16:08:40 Phil: is the perf question about comparison to WebTransport? or how much throughput it allows? 16:09:04 Jan-Ivar: it's more about justify a bespoke API based on performance improvements 16:09:35 Philip: with some patching to buffers, we managed to get 1Gb/s through this API 16:09:49 Jan-Ivar: comparing with WebTransport and data channels would be helpful 16:10:39 cabanier has joined #webrtc 16:10:39 geheimnis` has joined #webrtc 16:10:39 slightlyoff has joined #webrtc 16:10:39 timeless has joined #webrtc 16:10:39 Josh_Soref has joined #webrtc 16:10:50 ... WebTransport is built on top of QUIC which comes with a lot of features, incl dynamic route changing 16:11:03 ... part of the concern here is trying to do networking at the W3C layer 16:11:40 Philip: roaming support in QUIC does not equate to route management since it doesn't give control on the timing and prioritization of routes 16:12:18 TimP: a useful test might be to look at what happen at saturation in data channels vs this API (where I expect you would get better outcomes) 16:12:26 ... although I don't think we're able to measure this yet 16:12:51 Youenn: I suggest we file issues to continue discussion on these performance validation 16:13:05 Topic: -> https://github.com/w3c/webrtc-encoded-transform/ SFrame 16:13:05 Subtopic: Issue #305 Sending simulcast and per ssrc-encryption 16:13:05 [slide 33] 16:13:33 RRSAgent, draft minutes 16:13:35 I have made the request to generate https://www.w3.org/2026/05/19-webrtc-minutes.html dom 16:15:05 Harald: do each stream with a separate id get a separate key? 16:15:17 Youenn: good question - worth filing an issue 16:16:58 Harald: if the IETF have already put in the spec to do key derivation based on SSRC, that seems like an excellent option to follow 16:17:10 Youenn: it's optional; but I guess you support option C then 16:17:24 Jan-Ivar: +1 16:17:44 TimP: not sure I understand why you need to add an option to the transform 16:18:19 Youenn: if you don't do simulcast, you would be able to say to the transform whether to use the key directly or derived from SSRC 16:19:22 Harald: options reduce interop; if there is only way to do it, that's usually better 16:19:28 Youenn: so enforcing key derivation? 16:19:44 Harald: I think we would need a strong argument to not do that 16:20:12 Kacper: I'm concerned about SFUs which are doing ssrc rewriting 16:20:33 Youenn: you would need to know the ssrc before which could trigger an issue, which might justify making it optional 16:20:48 ... what is webex doing? is it using per-ssrc derivation? 16:21:50 Peter: what is the motivation for having separate keys for the separate simulcast streams? 16:22:12 Youenn: I know some apps are doing key derivation for different senders 16:22:34 Harald: with key derivation, they're all derived from one key 16:22:46 Peter: but we don't that for SRTP 16:22:57 Youenn: but SRTP is hop-by-hope, not end-to-end 16:23:25 Harald: SRTP uses different keys from RTP and RCTP; but all of this is mostly internal 16:24:35 Peter: the reason I don't like C is that it ties SFrame to RTP 16:26:08 Youenn: I'll need to research this more; e.g. I don't know how apps using ScriptTransform handle this 16:26:38 Peter: if each streams already use different keys, doing the same for simulcast makes sense 16:26:44 Youenn: that would be B or C 16:26:55 Jan-Ivar: my preference is for any option that doesn't need to an option 16:27:07 Youenn: not sure that's feasible given the need to adapt to different apps 16:27:23 [slide 34] 16:28:46 Subtopic: SFrame and frame marking 16:29:29 Jan-Ivar: I think we should have a useful default for SFrame with a custom-setting API 16:29:48 Harald: doubtful about making the packet more complex by default 16:30:31 ... adding a dependency descriptor when not needing reveals a bit part of the stream, which may defeat the goal of using SFrame for privacy 16:30:57 Youenn: at the cost of worse SFU behavior 16:31:06 ... so only mentioning them, not enabling them by default 16:31:29 Jan-Ivar: not every browser implementation the setnegotiatedheader API 16:31:42 ... which supports the idea of good defaults 16:31:58 Harald: but is "good" more privacy-supportive or SFU-supportive? 16:32:17 Jan-Ivar: maybe we can a privacy-vs-perf option? 16:32:33 Youenn: is webex using framemarking with SFrame? 16:32:54 Kacper: we don't need it but we're not using the standards-based sframe 16:33:22 Subtopic: Issue #307 SFrame Receiver transform may trigger lots of events 16:33:22 [slide 35] 16:33:52 RRSAgent, draft minutes 16:33:53 I have made the request to generate https://www.w3.org/2026/05/19-webrtc-minutes.html dom 18:13:13 Zakim has left #webrtc