15:01:20 RRSAgent has joined #webrtc 15:01:24 logging to https://www.w3.org/2025/07/15-webrtc-irc 15:01:24 Zakim has joined #webrtc 15:01:24 RRSAgent, make log public 15:01:25 Meeting: WebRTC July 2025 meeting 15:01:25 Agenda: https://www.w3.org/2011/04/webrtc/wiki/Jul_15_2025 15:01:25 Slideset: https://docs.google.com/presentation/d/1uEVvg1JB-6cUO9dZh7fb5CG1NDHkDP6U1wO61d0oujA/ 15:01:25 Chairs: Guido, Jan-Ivar 15:01:25 Present: Guido, Dom, Jan-Ivar 15:01:25 Regrets: Youenn 15:01:30 Present+ Harald 15:01:40 Present+ PeterT 15:01:49 Regrets+ Elad, Cullen 15:02:10 Present+ JasperHugo 15:04:35 Present+ SunShin, PatrickRockhill 15:04:48 Recording is starting 15:07:01 Topic: -> https://github.com/w3c/webrtc-pc/issues/3060 Header Extension Control to WebRTC MainSpec 15:07:01 [slide 10] 15:07:37 [slide 11] 15:08:34 present+ 15:08:37 Present+ TimP 15:08:44 Present+ Carine 15:09:27 Jan-Ivar: I don't see any big problem with that; still some concern about dictionary vs interfaces, but these improvements can be made in the main spec 15:10:03 ... so no objection from me 15:10:13 RESOLVED: move forward with pull request for #3060 15:10:44 Jan-Ivar: will this help wrt codecs/negotiation? 15:10:55 Harald: some of the same things apply, but this won't help in the short term 15:11:05 Topic: -> https://github.com/w3c/webrtc-rtptransport RtpTransport 15:11:05 [slide 14] 15:12:00 [slide 15] 15:12:46 [slide 16] 15:13:21 Peter: SimpleRtpTransport is a working name for this proposal, can be bikeshed later 15:14:22 [slide 17] 15:14:51 [slide 18] 15:16:10 [slide 19] 15:16:55 [slide 20] 15:17:07 [slide 21] 15:18:30 PeterT: it's a peer-to-peer bandwidh-controlled congestion controlled packet API 15:18:34 [slide 22] 15:18:41 [slide 23] 15:20:21 Jan-Ivar: re slide 19, doesn't WebTransport solve this with its echo server? what's missing? 15:20:42 Peter: P2P, real-time, customized congestion control 15:21:24 Jan-Ivar: a lower level API than WebTransport is not something I would be excited about 15:21:49 Peter: it doesn't have to be lower level, but allow for custom bandwidth estimate, P2P and real-time 15:22:18 Jan-Ivar: how about negotating WebTransport over SDP? 15:22:33 ... WebTransport has some congestion control, and I/O is solved with Streams 15:22:41 ... having yet another API for P2P feels suboptimal 15:22:56 ... and instead catalyze on what we've already solved 15:23:26 ... re which WG - there have been efforts on QUIC over WebRTC which may be worth discussing how to revive them 15:23:51 TimP: stepping back a bit: there are real use cases that can't be done with WebRTC or WebTransport 15:24:14 ... e.g. data out of a LIDAR on a near network that you don't want to go through a server, not possible in real time 15:24:23 ... Peter's requirements are right in that regard 15:24:53 ... there is no appetite on implementing the closely related WebRTC API that would satisfy this 15:25:20 ... layering WebTransport and WebRTC together with a bit of QUIC, I don't see who would implement this 15:25:32 ... maybe that's the fundamental question that needs answering 15:25:58 Present+ PhilipEliasson 15:27:03 Peter: I understand interest from Google to implement something like SimpleRtpTransport 15:27:07 Philip: that's correct 15:27:33 Jan-Ivar: I don't think we would be implementing something like that: it feels too low level, and it's not clear how you would solve the hard problems 15:27:43 ... Quic gives some congestion control and flow control 15:28:19 Peter: my main question is not on specific API shape and network protocols, but rather move away from piecemeal, and if so where 15:28:58 Jan-Ivar: we would have to dive into which technical problems need solving - e.g. WebTransport not being P2P 15:29:21 ... send/receive packets methods in JS doesn't feel realistic - WebTransport solved some of that with streams 15:29:38 ... it would be easier with more implementation experience on WebTransport, but it still feels like the most promising option 15:29:59 ... we would be more likely to implement WebTransport over SDP - QUIC seems quite compatible with ICE 15:30:36 ... Web developers who don't need P2P can already make do with WebTransport and get reasonable real-time preference; they shouldn't have to use a different API to get P2P 15:31:06 TimP: +1 to pursuing an API in that space; not an expert on the right place for the work 15:31:18 ... although if it starts from ICE, this WG feels reasonable 15:31:35 ... otherwise, if it doesn't tie to existing objects, not obvious it would need to be here 15:32:07 Philip: the proposed work could fit in other groups, but the motivating factor behind this API feels like a good fit for this group 15:32:27 ... it's RTC focused, with its low latency congestion control 15:33:03 Jan-Ivar: QUIC over ICE would need IETF involvement, on which we could add an API 15:33:12 ... WebTransport is getting close to wide review on level 1.0 15:33:36 ... I could discuss with my co-chair over feasability of P2P connection 15:33:50 Peter: QUIC over ICE isn't complicated - I've written a draft to describe it 15:34:10 ... P2P QUIC could be done without ICE (but ICE-like) 15:34:37 ... (distinguishing the ICE packet format vs the ICE approach - the latter can be done with QUIC packets) 15:34:54 ... QuicTransport was just that 15:35:05 ... it would still need solving real-time 15:35:27 Jan-Ivar: why would we solve real-time congestion only for P2P? 15:35:34 Peter: this would also solve it for client-server 15:36:08 ... I haven't seen an implementation of QUIC with real-time congestion control on par with what we get with PeerConnection today 15:36:42 Philip: true real-time communication is different from just data flows 15:37:02 ... doing real-time congestion control is quite different, it could complicate things quite a bit 15:37:23 Jan-Ivar: part of the question is how much browsers should be involved in congestion control vs apps 15:37:44 ... we would prefer reusing existing approaches as much as possible 15:37:59 Peter: so if we're making WebTransport real-time and P2P, which group should it happen in? 15:38:06 Jan-Ivar: either would be fine from my perspective 15:38:12 ... it would be good to have an IETF spec to lean on 15:39:25 ... a simpler API could also be done by polyfilling on top of SDP 15:39:44 ... e.g. what is missing from datachannels? 15:40:12 Peter: there are some downsides to re-using the datachannel API 15:40:28 Jan-Ivar: I was thinking instead of getting WebTransport streams out of the negotiation 15:40:52 Peter: that's roughly what QuicTransport was 15:41:03 ... you don't need SDP for this, but you could build it on top of SDP 15:41:16 Jan-Ivar: getting rid of SDP would be a large task by itself 15:41:25 Peter: only if you try to build on top of peerconnection 15:41:39 ... building an ICE Transport doesn't need to lean on SDP 15:42:21 Jan-Ivar: creating a third API isn't great for developers 15:42:32 Peter: hence the proposal of providing a sample app 15:43:10 Philip: the advantage of a low-level API is that it makes implementation much simpler, and is also simple to explain 15:43:40 Jan-Ivar: I'm skeptical it's actual simple - it took a very long time to get where we are today, and it took getting a lot of details right 15:44:24 TimP: we shouldn't regard developers moving away from PeerConnection API as a bad thing 15:44:35 ... it's not a simple API to learn, and it's not going to get simpler 15:45:07 ... it would be easy to find people interested to use such a new API - we got a lot of interest 15:45:36 ... we definitely would use it - datachannels over SCTP just doens't work for our use case 15:45:47 ... I suspect QUIC might have related problems, but I haven't tried that yet 15:46:00 ... it does feel like if we build it, they will come 15:46:58 Philip: re simple, I agree it's definitely not trivial to introduce a new transport 15:47:15 ... but this API is about removing 98% of PeerConnection 15:47:37 ... the main thing that needs solving is the app-level bandwidth estimation to prevent abuse 15:48:12 Jan-Ivar: I would be supportive to look QUIC over ICE and solve individual issues 15:48:36 ... would be interesting to learn more about implementation challenges 15:48:58 Harald: congestion-control and encrypted transport needs key negotiation and feedback format on congestion 15:49:23 ... they're not trivial problems; I'm hesitant to give an answer without a clearer sense of how they would be solved 15:49:36 ... IETF has banned "simple" in protocols based on their experience 15:49:59 Peter: re feedback, if we went with QUIC, we would need the receivetimestamp extension 15:50:11 ... if we want with RTP, we would go with RFC @@@ 15:50:27 ... re keys negotiation, QUIC partially solves it 15:51:06 Philip: I think there are solutions; feedback format are technically possible 15:51:16 Peter: but there aren't solutions already out there 15:52:12 Jan-Ivar: solving real-time congestion is inteesting for WebTransport in general, outside of P2P 15:52:26 ... this could be done a separate deliverable to WebTransport 1.0 15:52:38 Peter: solving QUIC to make it real-time would be great 15:52:42 ... likewise for P2P 15:52:47 ... and I agree they're orthogonal 15:54:59 RESOLVED: Jan-Ivar to discuss with WebTransport co-chair on interest; Peter to share details on QUIC over ICE 15:55:00 -> Peter's expired ICE+QUIC IETF draft: https://www.ietf.org/archive/id/draft-thatcher-p2p-quic-00.html 15:55:25 Topic: -> https://github.com/w3c/webrtc-pc/ DataChannel transfer issues 15:55:25 Subtopic: Issue #3063: Data channels in workers get initialized on wrong thread 15:55:25 [slide 27] 15:59:47 TimP: is that the only property that is mishandled or does that apply to labels as well? 16:00:17 Jan-Ivar: only id afaict 16:00:19 Present+ Varun 16:01:54 Guido: Chrome is implementing the spec; before we agree to change the spec, I would like to take a look at why Chrome is doing that way, and if changing it would cause any problem - let continue the discussion 16:02:29 Jan-Ivar: part of the issue is that when SCTP connects, it queues a task on the main thread and does a lot of initialization on that thread, which could be an issue with worker threads 16:02:49 ... there is a separate task to announce the channel as open - we could move id initialization there, but that could be a breaking change 16:03:25 ... an alternative would to change how initialization is done specifically in workers channel, where id initialization would come alter 16:04:09 RESOLVED: continue discussion in issue based on implementation analysis 16:04:17 Subtopic: Issue #3062: Prevent GC of non-closed RTCDataChannels in workers 16:04:17 [slide 28] 16:06:44 RESOLVED: move forward with proposal 16:06:49 Subtopic: Issue #3058: Avoid losing data channel events during transfer 16:06:49 [slide 29] 16:08:40 Jan-Ivar: more of a heads up for implementors; the spec seems already correct 16:09:21 RESOLVED: the issue can be closed since no spec change is needed 16:10:08 Topic: -> https://github.com/w3c/webrtc-pc/ WebRTC API 16:10:08 Subtopic: Issue #3052: RTCPeerConnectionIceErrorEvent should not expose STUN reason phrase to JS 16:10:08 [slide 34] 16:11:32 Harald: I think we should keep errorText, but that it doesn't need to reflect the error message from the STUN attribute; it should help with debugging 16:12:41 RESOLVED: keep errorText but call out risk with STUN reason 16:12:55 Subtopic: Issue #3064: RTCError constructor fails the copy constructor pattern 16:12:55 [slide 35] 16:14:08 RESOLVED: move forward with proposal 16:14:19 Topic: -> https://github.com/w3c/webrtc-stats/issues/800 Can we delete webrtc-provisional-stats spec? 16:14:19 [slide 36] 16:15:20 Jan-Ivar: I'm supportive of Henrik's proposal 16:15:56 Harald: do we have a list of what's implemented and not in provisional stats? 16:16:08 Jan-Ivar: not that I know of; I know Firefox hasn't implemented any of those 16:18:27 Harald: part of the motivation was to allow webrtc-stats move to PR 16:18:53 Dom: right - we need to look again at what's implemented to move forward with webrtc-stats 16:19:12 ... we could re-import things that have only one implementation as feature at risk for later integration through amendments 16:19:28 ... my recollection was that stats was also used as a collection of "good ideas" - not sure if that's useful 16:19:39 Varun: +1 on the value of documenting them 16:20:07 ... to avoid reinventing the wheel all the time 16:21:30 Dom: this could be done as markdown files under a subfolder in webrtc-stats 16:22:36 Jan-Ivar: we recently added a stat for PSNR; it took a long time, but making it through the traditional standardization process rather than hiding them in provisionign is valuable 16:22:59 Varun: provisional stats has lots of stats that have been implemented in the stack, but not exposed via getStats() atm 16:25:44 Harald: I would object to the goal on deleting that document without a clearer process to documenting, evaluating stats over time 16:26:06 ... given that barrier to adding stats to the main document 16:26:43 ... I expect triage will end up with a random set moved to main, with information loss in the process 16:27:10 Varun: moving to markdown with the same information doesn't feel like progress 16:27:43 ... the doc is already marked as unofficial, and makes it easier to move stats from one doc to another 16:29:00 ... it all comes down to process; we should clarify our expectations for proposing new stats 16:30:27 Guido: we should bring this back when Henrik is around 16:31:20 Harald: FYI: the document hasn't been updated in 2 years, or looking at issues 16:31:29 RESOLVED: bring this back when Henrik is available 16:31:33 RRSAgent, draft minutes 16:31:35 I have made the request to generate https://www.w3.org/2025/07/15-webrtc-minutes.html dom 18:29:34 Zakim has left #webrtc