- From: Dominique Hazael-Massieux <dom@w3.org>
- Date: Wed, 22 Nov 2017 14:41:39 +0100
- To: "public-webrtc@w3.org" <public-webrtc@w3.org>
- Cc: "public-media-capture@w3.org" <public-media-capture@w3.org>
Hi, The minutes of our F2F during TPAC on November 6 and 7 are available at: https://www.w3.org/2017/11/06-webrtc-minutes.html I'm uploading video records of the meetings to media.w3.org and youtube, and will link to them from https://www.w3.org/2011/04/webrtc/wiki/November_6_-_7_2017 once that's done; that being said, as experienced by the remote participants, the quality of the audio is so bad that it's not clear how useful these records actually are in this case. Dom [1]W3C [1] http://www.w3.org/ WebRTC TPAC F2F 06-07 Nov 2017 [2]Agenda [2] https://www.w3.org/2011/04/webrtc/wiki/November_6_-_7_2017 Attendees Present Bernard, AdamBe, DanBurnett, Huib, PeterT, JanIvar, Varun, Cullen, Dom, hirokias, hiroki_asakimori, Stefan_(remote), Jan-Ivar, Youenn, EricCarlson, Hyukhoon_shim, PeterB_(remote), Soares Regrets Chair Bernard, HTA (remote), Stefan (remote) Scribe dom, pthatcher, burn, DrAlex_, DrAlex, fluffy, adambe, vr000m, soareschen Contents * [3]Topics 1. [4]WebRTC Testing 2. [5]Welcome / Intro 3. [6]Test as You Commit Policy 4. [7]WebRTC-PC Issues 5. [8]Issue 1635 Need for Initial Bitrate by the Application/RtpSender? 6. [9]Issue 1194 audioLevel of tracks, both send and receive? 7. [10]Adding more values to RTCIceTransportPolicy Enum #1644 8. [11]behaviour of offerToReceive* set to false when there is a local track #1586 9. [12]Isolated Media Streams requires modification on permission algorithms in GUM and Permissions specs #1646 10. [13]SVC Use Cases For an SFU developer 11. [14]WebRTC Stats 12. [15]Issue 177. Caching and consistency of getStats() 13. [16]Issue 131/PR 262. "objectDeleted" marker 14. [17]Issue 231/PR 273. Sender and Receiver stats vs Track stats 15. [18]Issue 230/PR 272. RTCMediaStreamTracks to 4 dicts 16. [19]Issue 133/135. DSCP information 17. [20]Issue 202. concealedAudibleSamples 18. [21]Issue 1613. Stats and Isolated Streams 19. [22]Media Capture and Streams 20. [23]Content hints for MediaStreamTrack 21. [24]Clarify whether RTCRtpContributingSource members are live. #1533 22. [25]RTCPriorityType combines relative bitrate with QoS priority, which applications may not want. #1625 23. [26]Media Capture, WebRTC-PC and WebRTC-Stats Next Steps 24. [27]WebRTC NV / New work 25. [28]Wrap Up Items 26. [29]Disable user media by default in cross-origin iframes #434 27. [30]Audio-video RTC over QuicStream 28. [31]Scary ICE proposal 29. [32]Wrap up and actions * [33]Summary of Action Items * [34]Summary of Resolutions __________________________________________________________ <hta2> I don't see anyone on the testing webex - are you in the meeting webex? <fluffy> stefan, are you on IM here ? <dom> hta2, can you say something? <fluffy> IM us back as we are not hearing you <hta2> Sorry, not looking at all the screens all the time while waiting - did you get the sound check for me OK? <inserted> ScribeNick: dom WebRTC Testing <hta2> Sound from the meeting room is very low. <lgrahl> Ouch! <hta2> Sounds like you have too many devices with the loudspeaker on in the room. <hta2> if someone can turn the camera to point at the speaker, that might be nice. Huib: I work for Google; used to work for Opera and have been working with Web technologies for a long time ... have been working on finalizing the WebRTC technology and we have been working with testing to that end ... making the Web work reliably is a key aspect of providing APIs ot the Web ... WebRTC 1.0 has been a long road, with many specs both APIs and protocols at W3C and IETF ... lots of efforts to get there ... Web Platform Tests is a great tool for testing Web technologies, but it is not sufficient for WebRTC given the complexity of WebRTC, and the number of underlying low level protocols ... So Google took up the idea of Alex to work on a more comprehensive system - KITE, an open source project we formally announced last week ... Alex will tell us more about it ... Beyond spec and testing, the third part if compliance - all browsers have their own challenges in that space ... We've made progress in Chrome in the past year - compliance on getStats, constraints, RTCRtpReceiver ... The major upcoming milestone is unified plan, planned for Q1 2018 ... getting to 1.0 is critical to avoid getting too many proprietary or native solutions deployed for WebRTC ... The major engineering effort in WebRTC in Chrome is around reliability - which is much harder than spec compliance ... other browsers are probably in the same situation ... Soares will report on his work on WPT, sponsored by Google Soares: quick update on the status of compliance testing in WPT ... We have ~1300 tests - added 1000 in the past few months ... We have added a tool to calculate coverage for WebRTC <hta2> Repeat: If it is possible to turn the camera towards the speaker, that would be good. Soares: We extracted all the normative statements <hta2> Thanks! Soares: the WebRTC 1.0 spec is about 70% tested at this stage! <lgrahl> Can you talk louder? Sound is cut off a lot. Soares: Some of the challenges to reach full coverage ... tests are currently written based on the June editors draft - quite a few updates since then, so the tests are a bit out of sync ... some race conditions make test difficult ... WebRTC describe steps that happen in parallel - sometimes hard to trigger specific concurrent operations DanBurnett: you noted 10% untestable assertions - what's your thinking on that? Soares: the untestable ones are bound to the constraint of what is exposed in plain JavaScript DanBurnett: if these assertions come from the spec, the spec may need to be changed to avoid those Alex: Some errors can't be dealt with at the JavaScript level - e.g. errors linked to hardware error which can't be triggered ... re race conditions, dealing with timing and promise-based algorithms is hard Jan-Ivar: we may need to fix the spec if the timing is not deterministic Alex: re untestable, we count them as "tested" in the 70% ... regarding the new 97 steps added since June, many of them come from error reported out of the testing effort ... in the remaining path toward full coverage, 90% of it is easy; we expect to reach 100% in Q1 2018 ... once we reach 100% for webrtc-pc Soares: note that coverage doesn't mean they are all correct - the tests need to be verified by implementors and editors ... one possible topic is how to keep track of coverage over time ... we're looking at automation with web driver & permissions API ... there are other specs that need testing efforts: we are on track on testing mediacapture-main next - other specs are further down in the pipeline [Slides: Real-Time Communication Testing Evolution with WebRTC] Alex: beyond testing the JavaScript compliance, there is a lot more that is needed to properly test an RTC system ... JS API compliance is part of the standardization process - but the tests are standalone tests, testing a single browser at a time ... Until WebRTC, this was probably sufficient ... but for WebRTC, you need tests that test interop across browsers ... you also need to test intersection with protocols and the networking layer (e.g. ICE, NAT traversal) ... So beyond compliance testing (with automation, stand alone tests, one browser), we need to move to interop testing (still with automation, but on two synchronized instances of the test, with 2 or more browsers) <lgrahl> Sorry for nagging but sound is cut off a lot again. :/ Alex: For automating interactions, Web Driver helps quite a bit ... But we need improvements there - e.g. extensions to integrate permissions management in Web Driver ... Once you've obtained permissions, you need ways to emulate captured media ... browsers have already ad-hoc ways to do that, but we want a standardized Web driver approach to it ... So Web Drivers help quite a bit, but it doesn't help when it comes to run synchronized tests across browsers ... lots of tools hvae been developed to address part of the problem - which confirms the problem exists and is important ... how bad is it when you try testing interop across browsers / OS - leading to ~500 situations to test ... only very few of these situations had been automated so far ... existing solutions have limited reach in terms of browser versions and OS ... eg in the enterprise market, Windows 7 is still a key OS to test for ... different browsers have different level of support for Web Drivers, and even more so when taking into account the permissions extension ... to avoid regression tests or ensure newer versions of browsers are as compliant / interoperable as possible, bugs need to be caught early in the release process (i.e. in ~nightly builds) ... depending on resources, your needs on freedom/convenience/price vary quite a bit ... Taking all these dimensions into account, what you can achieve with existing solutions is always limited ... Testing WebRTC feels like death by overwork, hence we created this interop testing engine named "Karoshi Interop Test Engine", aka KITE ... it is designed to be as generic as possible ... meant to work with any client, any platform, any back-end ... we architected this by designing 4 independent components: a selenium grid, a test engine, tests themselves, and a reporting dashboard ... tests and dashboard aren't completely independent since the dashboard needs to know what to expect from the tests ... Tests have to encapsulated into a Java class ... configuration files are used to describe which tests are run in what browsers, on what selenium nodes ... we also record timing information to detect performance issues <lgrahl> Sound (sorry) :) [demo of KITE dashboards and how they allow to look into details of runs] scribe: This level of testing has already allowed us to identify and report bugs ... we have plans to extend this to mobile browsers (will come to open source project), to electron and other native platforms (in the cosmo proprietary version) ... we will bring additions for SFU testing over time ... we are very open to all suggestions ... we want to make this tool as useful as possible - please file issues on our github repo Cullen: first, thanks, this is amazing <hta2> the sound has become worse and worse over the period of the presentation, with mike cutting out randomly. Now Cullen's voice is much better than Dr. Alex' was. Cullen: what are the next steps to expand this Alex: Web Driver handling is key; support in Edge is important to reach 100% ... Tests for IETF protocols are a big piece of the picture <hta2> the new mike sounds better, at least at first. Alex: a key topic for people is call quality <hta2> but now it's doing the same thing again. Alex: media quality is another topic - but hard to measure automatically ... What I want is have a tool that moves beyond compliance to quality, incl network and media resilience ... As far as standardization is involved, the most difficult part will be around the number of protols Cullen: the key is identifying key use cases - it's impossible to test all the situations covered by the RFCs Huib: from Google side, we've sponsored the development of KITE to enable the proper testing of interop testing ... getting the important use cases exposed is key ... we want the baseline scenarios to be right dom: how do you write an actual test case? <lgrahl> The mic seems to work decent if the person talks loud. Alex: we need to improve the documentation on this; this is upcoming in the next few weeks dom: how hard/easy is it to run WPT tests in KITE? Alex: we're looking into making it easier <hta2> now the sound is completely gone. Huib: but this not the main use case for KITE - the expectation is that this will run in the WPT dashboard <lgrahl> Thanks dom for summarising - sadly I couldn't hear much. :) [coffee break until 10:45] Welcome / Intro [reviewing slides] Test as You Commit Policy [35]Adopt test as you commit policy [35] https://github.com/w3c/webrtc-pc/issues/1617 Philip: I work from Stockholm Google office on testing ... WPT is big ... WebRTC test suite is in pretty big shape ... To keep the test suite in good shape, I have a proposal to keep them in sync as the spec evolves ... We have an annotated version of the spec based on test coverage rwaldron.github.io/webrtc-pc/ ... the coverage of that spec is one of the better known of the platform ... The WebRTC test suite is run daily on the WPT dashboard wpt.fyi ... currently has lots of red, but most of it is linked to automation of getUserMedia (or lack thereof) ... both for permission prompt and fake media generation ... so this should get much greener soon for Chrome and Firefox soon ... we have a new piece of infrastructure to have tests to drive themselves via Web Driver ... we plan to extend the Web Driver API to manage permission prompt and to bring that to the WebRTC test case ... the WebRTC test suite is being imported into browser test suites (at least Chromium, Gecko, Webkit) ... also test case updates get automatically upstreamed ... My proposal today relates to an approach groups have started to adopt ... where a normative change to the spec comes with an associated pull request on the test suite <pthatcher> Sure...except my slides are next. Philip: we hope to increase the production of tests based on that policy - this is already having a clear impact <pthatcher> Also.. .when I do scribe, do I have to be as detailed as you? I don't know if I'm capable of typing that quickly. Philip: we have passed 50% of specs who have adopted the policy danburnett: there is a discussion in the issue - e.g. what to do if you don't know how to write test case ... also, we should understand if/when that policy applies - for CR, it makes plenty of sense; for new work, there may be too much change early on Philip: the proposal here is to do this for WebRTC 1.0 spec ... some groups have decided CR is a good time to enforce this ... but clearly it can't wait until CR Cullen: at a conceptual level, sounds great ... the practicality of it is a bit worrisome - will it slow us down in closing bugs? it will improve quality for sure ... but maybe before adopting it, we should play with it to see how it works out Philip: note that the policy is not about adding a hard requirement so much as encouraging it as a practice ... this may slow down the spec work, but would increase the rate of interop Youenn: fixing the platform is more important than fixing the spec ... this simplifies implementation in browser vendors <inserted> ScribeNick: pthatcher Dom: how many people have experience writing tests cases, among people who make changes to the text? Cullen: I don't (a few hands saying they do?) foolip: the person who wants it merged is going to want to see the test added ... but the test can be written by someone else dan: Idea for policy: for a PR to be merged, there must be a test. But the editors can make a judgement call to be able to merge without a test. foolip: This is like tests in a code review. It's a cultural change. Harald: feels safe to try this; ... if we don't try it, we won't get there jan-ivar: What's the granularity? Harald: I'm just talking for volume testing purposes foolip: ... Can't be adding huge new things; so shouldn't need huge new tests for small changes ... just small tests for small changes dan: maybe we should wait until we have a certain test coverage threshold Bernard: a call for consenus on issue 1617 to provide a test for changes unless you convince the editors it doesn't apply to you lots of thumbs up no thumbs down RESOLUTION: We adopt a test as you commit policy as describe in issue 1617 - we may revisit if it proves too complex in practice Noted: a consensus to move ahead, with Cullen's coveat that we can revisit this if we find it doesn't work well foolip: I'll go write that PR I can't scribe any more :) WebRTC-PC Issues <dom> ScribeNick: dom [36]RTCPriorityType combines relative bitrate with QoS priority, which applications may not want [36] https://github.com/w3c/webrtc-pc/issues/1625 PeterT: we discussed as an interim before ... right now, you can't control separately priority and QoS [37]Adding relativeBitrate parameter to RTCRtpEncodingParameters [37] https://github.com/w3c/webrtc-pc/pull/1632 Peter: the PR provides a more granular control on RtpEncodingParameters, splitting bitrate and QoS priorities, with a more flexible control on bitrate Varun: relativeBitrate is that related to what? PeterT: to other streams Varun: so the top bitrate is one? Cullen: there was confusion about rate being used and max PeterT: same as currently, but with more control on the relative values Harald: I worry about this ... what you're saying now is that if the congestion point is at the point of having DSCP glitches, you won't change anything ... e.g. if you want to prefer audio over video and get into congestion, the relative bitrate will not get you what you want (e.g. throwing video) petert: if we focus first on splitting qos vs bitrate - what's your opinion? hta: from a process perspective, the IETF specs have already passed last call, so that's a concern ... from a practical perspective, the risk is that we open up many cases that make no sense for users that wouldn't do the right thing PeterT: there are 2 type of users: those that don't care and those that do ... having one knob helps the former, having two helps the latter Harald: the relative bitrate control seems useless to me; but changing the spec of control we already agreed upon worries me Bernard: exploring one of the cases that match this question: audio conf with low priority file transfer; but there is no reason to keep its bitrate low harald: the current spec says that when there is congestion, the low priority @@@ stefan: we should have much more data about actual usage nowadays ... I would like to see proof of need of this ... to get data on how this actually behaves PeterT: we have an application that wants to use this field ... but when trying to implement it, the fact that the two are combined was blocking us Varun: we came across this as well PeterT: we want to turn on DSCP markings to experiment with them, but we can't do that if this is coupled with bitrate Cullen: assuming we would agree to do this (i.e. it's not useless), what would we need to change in specs? <foolip> who wants to merge [38]https://github.com/w3c/webrtc-pc/pull/1657? [38] https://github.com/w3c/webrtc-pc/pull/1657? Peter: so imagine we have one 4 level knob for QoS, and a 4 level knob for bitrate Cullen: I don't think such a change would have to impact the RTCWeb-transports draft HTA: RTCWeb transports is where 1/2/4/8 is defined PeterT: I'm happy with only doing the split of knobs - the relative bitrate thing is just a nice to have <hta2> [39]https://tools.ietf.org/html/draft-ietf-rtcweb-transports-17 #section-4 [39] https://tools.ietf.org/html/draft-ietf-rtcweb-transports-17#section-4 Cullen: I'm not against it; I'm not sure I'm convinced yet PeterT: so the model would be to keep the current knob, and add two "experts" one for separate control that would override the other Cullen: splitting the knobs would impact the rtcweb-transports draft PeterT: Let's look into this offline and come back to this tomorrow Issue 1635 Need for Initial Bitrate by the Application/RtpSender? [40]Need for Initial Bitrate by the Application/RtpSender? #1635 [40] https://github.com/w3c/webrtc-pc/issues/1635 Varun: the IETF congestion control wanted lots of info to help with initialization Cullen: I think the IETF would have concerns about this being misused by attackers in JavaScript Bernard: RMCAT could send a liaison statement if they want to push for the W3C WG to adopt this PeterT: my recommendation was pushing this for post 1.0 Varun: that's fine by me - but I want to emphasize that people are complaining about the lack of current optimal starting situation ... I'll reach out to the RMCAT WG to let them know they should a formal request PeterT: but even if and when they do, it's not clear where we would put it Bernard: we'll put that issue on the icebox for now <fippo> fluffy: won't those security concerns apply to what is currently possible in chrome with sdp munging? Issue 1194 audioLevel of tracks, both send and receive? [41]audioLevel of tracks, both send and receive? #1194 [41] https://github.com/w3c/webrtc-pc/issues/1194 PeterT: this can be done with Web Audio Cullen: but not when the stream is isolated PeterT: recommendation is not adding this Bernard: no objection Adding more values to RTCIceTransportPolicy Enum #1644 [42]Adding more values to RTCIceTransportPolicy Enum #1644 [42] https://github.com/w3c/webrtc-pc/issues/1644 PeterT: 2 different issue - one about network permission separate from getUserMedia, the other about giving more control for the app to constraint their routing Varun: use cases including routing data through or not VPN ... another thing is to enable a relay-first approach to help with establishing a call quickly Dom: so if we don't do this, what should we recommend to the OP? PeterT: so for the first bit, we need to look into the permissions thing ... for the second, give more justification / use case Cullen: maybe a way to address the second thing is a way to expose from which route the origin was loaded PeterT: it may make sense to close this issue and open one on data-channel only permission, and then maybe one discussion exposing more routing info for selecting ice candidates behaviour of offerToReceive* set to false when there is a local track #1586 [43]behaviour of offerToReceive* set to false when there is a local track #1586 [43] https://github.com/w3c/webrtc-pc/issues/1586 <fippo> i probably owe a PR here. Its a mess. (dom: note that so its on record :-)) JIB: this case would only happen in the case where one of the party is not a browser RESOLUTION: we don't change how offerToReceive*: false behaves in the spec Isolated Media Streams requires modification on permission algorithms in GUM and Permissions specs #1646 [44]Isolated Media Streams requires modification on permission algorithms in GUM and Permissions specs #1646 [44] https://github.com/w3c/webrtc-pc/issues/1646 Soares: discovered thing while testing isolated media ... right now, the way the permission grant doesn't take into account the fact that permission is granted not to an origin, but to a peer DanBurnett: this needs to be described in webrtc not getusermedia Dom: but getusermedia probably needs a hook in its permission check ... so I guess we do need to modify the specs Soares: I can take a stab at it Alex: who will review? Dom: DanB+JIB for getUsermedia, MartinT & EKR for webrtc, … SVC Use Cases For an SFU developer Bernard: this is input to our discussion tomorrow on WebRTC NV ... we're doing it today due to time constraints of the presenter Sergio: this is meant as a conversation trigger for WebRTC NV [slide SVC Use cases] [slide Content Adaptation (II)] Cullen: decoding complexity seems a bit different from the rest ... e.g. based on codec support ... e.g. it might be that stereo videos would use different layers for the 2 eyes Sergio: the most clear need is turning on/off temporal vs spatial scalability PeterT: I think we have everything in RtpEncodingParameters, except for the spatial/temporal switches Varun: there is also the question of priority - which layer should switch to which priority ... not entirely sure if that level of control is needed Cullen: I agree with these requirements ... when it comes to image size, we care about the thresholds ... we code to specific sizes for specific phones ... right now we work around this via stats ... but it would be more convenient to have direct control over this DanB: This all looks great; but how doable is it? how standardized are the controls across SVC codecs? ... every codec seems to be doing it a bit differently ... can we define a predictable outcome? PeterT: I believe if we just add the high level switches for scalability (temporal and spatial), yes Sergio: agreed; it would be hard to do low-level control because of this variability, but high level control seems very feasible Bernard: there is an implicit assumption in what PeterT said: that a decoder can always decode what an encoder sends ... that's true for VP9, but it may not be true for all current, let alone future codecs PeterT: if you set the scalability bit, if the codec doesn't support it or if the recipient can't support, then you just use simulcast DanB: that's what's at the heart of my comment - can this actually be implemented? cullen: there aren't so many SVC codecs, and they've all been designed similarly - so yes, this should be doable Bernard: AV1 has a similar syntactic structure simliar to H264 ... it may break the assumptions of VP8/VP9 of encoder // decoder <burn> scribenick: burn WebRTC Stats [Varun presents slides] <dom> [45]WebRTC Stats Issues (30 atm) [45] https://github.com/w3c/webrtc-stats/issues/ Issue 99/PR 251: Security and privacy considerations s;Issue 99/PR 251: Security and privacy considerations;Topic: Issue 99/PR 251. Security and privacy considerations; Dom: for the security-impacting features in Stats that are beyond what webrtc-pc itself introduces, we will send the APIs to the TAG with a proposal Bernard: "network layer data" is vague. I suggest describing "statistics related to packets lost/received, etc." Varun: counters might be better <dom> Cullen: some of the stats exposed here can fingerprint a specific network based on its characteristics, which can help determine two peers are on the same local network Varun: regarding location access, we need feedback Cullen: what can you do with this that you can't do with HTTPS? Dom: by exposing rtt between peers, given the location of one you may be able to infer location of the other HTA: can tell distance between clients, not just clients and servers Dom: and these stats can be used without the user knowing it. Data channels alone with this could be used to triangulate. Varun: and this is useful for CDNs. Bernard: candidate pairs also give you RTTs. Dom: we will expose the problems that exist and discuss possible mitigations Next step would be to merge this PR (after Varun updates). Issue 177. Caching and consistency of getStats() <dom> [46]Discuss caching and consistency of getStats() return #177 [46] https://github.com/w3c/webrtc-stats/issues/177 Varun: PR 243 is related JIB: PR says when you cannot cache Dom: since this says For Example, the MUST should be lower case Issue 131/PR 262. "objectDeleted" marker <dom> [47]Consistent marker for "non-active" object? #131 [47] https://github.com/w3c/webrtc-stats/issues/131 <dom> [48]Added 'objectDeleted' attribute #262 [48] https://github.com/w3c/webrtc-stats/pull/262 JIB: if we keep around stale data, under what conditions would they go away? <dom> [49]https://github.com/w3c/webrtc-stats/issues/235 [49] https://github.com/w3c/webrtc-stats/issues/235 Varun: this came up before, but we haven't seen any problems with it. Issue 235 <dom> [50]Is keeping stats around a memory problem? #235 [50] https://github.com/w3c/webrtc-stats/issues/235 Varun: we haven't seen it, but others might. JIB: Why can't we just grab stats just before closing an object? HTA: sometimes an object is destroyed by remote control, e.g. setRD that closes some of the connections. Varun: also a third party might be monitoring and not be privy to the actions taken by the application. JIB: what about a time limit? HTA: for a long time now the limit has been the life of the PC ... we could add an API for stats clearing. Adam: what about an API to register a capture for anything you would care about? Varun: if you are a third-party monitor this is too hard to make work JIB: this is a slippery slope. Maybe we need something else in reality, like a session ended event. Let's solve the right problem. HTA: we have event transitions in theory. Maybe in NV we can consider other options I will send by email. JIB: FF doesn't work like this, so we want to make sure this is necessary before we do it. Dom: does that mean issue 235 should be a CR blocker? JIB: we will review and get back to you. ... this is related to sender vs. receiver stats Varun: back to 262, should we do it? JIB: that's where we had concerns Varun: if 262 depends on 235, which is in icebox, we have a problem Dom: if either blocks CR we need to discuss. JIB: yes, we need to review and propose an alternate Dom: are we marking 235 as CR blocking and linking it to this issue? (agreement) and Jan-Ivar owes a response to it. Issue 231/PR 273. Sender and Receiver stats vs Track stats JIB: using replaceTrack will replace the counters on the sender side but not on the receiver side ... builds on next topic of Issue 230/PR 272. ... idea is to have counters on senders and receivers. varun: not having track info there is a problem with replaceTrack because track stats go away in this approach. We need the stats to stay around. JIB: this sounds CallStats specific. In general we have assumed that with a PC we don't get a done event for every action. Varun: intercepting WebRTC APIs is problematic. JIB: this is not an issue for original JS app code, since their code causes the actions and thus knows. ... instrumentation is an edge case, albeit an important one. ... how often do we need to know the counts before and after a replaceTrack? Varun: switching front to back cameras, or screen capture, are very good examples. JIB: getting tough to parse stats now, since you have to know which objects have been deleted. Varun: we should separate the two issues / the two PRs. Getting an event would be nice, but we hear users asking to be able to call getStats at the end, after objects have been ended. ... this has not been an issue so far because we haven't had lots of tracks lying around. Hard to know how this will change going forward. JIB: the issue seems to be removing track stats, right? Is there a problem with adding the sender and receiver stats? varun: not at all. It's the removal of the track stats that would be an issue. JIB: okay, let's focus on the addition first. varun: +1 JIB: I will update the PR Issue 230/PR 272. RTCMediaStreamTracks to 4 dicts JIB: this is editorial only since the API is unaffected. Varun: no objections. What would be required now if we get depth stats? JIB: same as what we have. Might be a bit more prose. Cullen: how does extensibility work? Varun: easier with an enum. JIB: depth is simpler because it inherits off the existing dictionaries HTA: another extensibility piece to track. JIB: any objections? Varun: let's make sure this is JS observable. (no objections) Issue 133/135. DSCP information Cullen: (asks about how it would look) HTA: we have two alternatives because it's not really clear why someone would prefer one over the other Cullen: maplike is easier to use, but a string could be parsed as well. HTA: (missed comment on strings). With maplike you would have to iterate. Dom: any privacy or security issues? ... say, bleaching of JS? Varun and Cullen: yes, but there's not much you know. JIB: record is closer to a JS object so might be passed by reference, but don't know for sure. (agreement this is useful) (but not on which to choose) JIB will review and comment Issue 202. concealedAudibleSamples Bernard: why during audible portions? Varun: if concealment is noise or content is important. Cullen: there is an RFC that defines concealed. Bernard: in XR block Varun: but it doesn't say whether it's in an audible section or not. ... packet loss, audible sample, or not are the three factors Bernard: RFC 7294 Varun: there are many issues like this that are not controversial but are lacking expert review. Cullen: we were only supposed to reference existing stats and not create new ones, so maybe these need to be removed if they are unclear. ... we were only supposed to add stats that are clear to the spec editor. Dom: and this is not a CR blocker? why not? Varun: virtually everything in getStats is optional anyway. We may just provide a date cutoff for something going in. ... as soon as all the CR blocking items are in we will move on even without these iffy items going in Dom: should warn people of what might go in/not go in. Varun: conclusion is we need a citeable reference that all parties agree on. Dom: Cullen is right that the experts are not likely in our group. Cullen: this specific metric has problems. ... the concealment algorithm introduced audio, but that's about all. Get IETF to define the details if you really want it. Concealed seconds is useful, but the high/low energy distinction is of questionable use. Varun: this is in a grey area where I don't see the value but that doesn't mean it isn't useful to someone else. hta: we have lost samples that occur in the middle of speech, so you might want to replay rather than filling in. ... typical suggestion by someone but we can't decide whether to refuse or find a better definition. burn: the burden needs to be on the suggester. Dom: let's ask for a more specific justification and reference. Issue 1613. Stats and Isolated Streams <dom> [51]Stats and Isolated Streams [51] https://github.com/w3c/webrtc-pc/issues/1613 HTA: we know this can be an issue. So either we try to mitigate, or we just remove the stat. The latter is my suggestion. Cullen: security arch doc actually says to do that. HTA: I will prepare a PR for not reporting the stat in this case. Bernard: an issue for csrcs as well ... in webrtc-pc Dom: will the PR address CSRCs as well, or just volume in isolated streams? HTA: i will do the stats part. Dom: I will file a new issue for CSRCs HTA: I will do the PR then. Media Capture and Streams <dom> ScribeNick: DrAlex_ <DrAlex> jib speaking <DrAlex> starting with jib tickets in the absence of peter sometimes the values that were preset are different from the current values example, capture rate might fluctuate up to a preset of 60 fps live volume vs actual volume settings is another example. camera motor pan has a target, and a current value as well. cullen: let s take th pan example we need both values jib: yes but one is not a constrainable cullen: agreed dan: we already discussed this this should be what it is SET to hence the name. we can still discuss wether we also need a current value or something, but the result of getSettings() should be what i was SET too bernard: the downside is that if we had a current value, people would start pooling it. jib: the spec has special frame rate wording. dan: there may be a precision discussion we may have across all measurements. that is also true for framerate which can fluctuate around a target velue but your setting is what it is, and doe snto change. cullen: it s ok to report error if you make a mistake. or if there is a problem. you should not set constraint, but when you do, and use exact, you are expecting errors when things is not exact. camera rates do not fluctuate. However browsers get frames at different rates. jib: cameras, e.g. on mac, have modes. if you ask for an arbitrary rate you night not get it. it is my opinion JS should count the frame rate themselves. cullen: i do not think there is a way for app to compute FPS, really. jib: ok, so for motor pan ..... do we speak about target, settings, values ? cullen: actually: what do we have again ? <inserted> ScribeNick: DrAlex issue 466 the answer is "it shoul dbe whatever the last setting was" for previous issue. <stefanh> was there any conclusion on 470? <stefanh> audio is really bad conclusion of 470 the answer is "it shoul dbe whatever the last setting was" <dom> (i.e. the target setting, not the live value) settings shoul now belong to the track <stefanh> +1 to hta's comment of course source have settings, but source can have multiple settings, from the user point of view (and also for security reason) the settings should be on the track jib it would be very easy to see the track as a rescuer object. should the track only reflect the source settings or shoul dit handle all the scaler. dan: when we spoke about it initially, we had decided that the sink would be the one holding the processing (scaling here) jib: we have now additional sink: canvas capture, remote track .. we have never came up to define constraint on those. e.g. echo cancellation is audio only ..... with that, I think that if we can word this in such a way that tracks can have different settings we are still all in agreement cullen: isn t it like that already ? consensus on leaving it as is <DrAlex_> harald: we decided last time we had two ways to do it. <DrAlex_> one sends nothing <DrAlex_> one sends black frame. <DrAlex_> cullen: while I think we should specify it so people know what to expect, but it s an implementation detail. <DrAlex_> sergio: in the case of simulcast <DrAlex_> we also have that kind of problem, when we kind of "mute" the higher resolution in case of congestion. In the IETF there is a solution. <DrAlex_> bernard: i just looked it up. there is nothing about enabled=false <DrAlex_> ericsson: it does not matter if it s muted or enabled=false, it should be the same behavior. <DrAlex_> <everybody agrees> <DrAlex_> jib: so ... no action item ? <DrAlex_> cullen: two different settings. one is resulting in silence / black to be send the second one stops rtp packets. <DrAlex_> bernard: track=null results in no rtp sent. the track could be enabled, while the source be muted. (jib) adam: the specs says balck frames and silence shoul dbe send. but it does not specify wether you send only one such black frame, one per second, or full stream of black frames at 30fps. youenn: safari sends one frame per second, just to make sure something is coming. so does firefox. <audio setting in the room> jib: do have a motion toward consensus on this. consensus 495 / 472 Video dimension constraint <stefanh> What was decided on 441? 441: one frame per second. scenario: sender has 16:9 receiver wants 1:1 <stefanh> BTW, the "one frame per second" was an advice, right? shall we add pixels (letterbox) or removing piixels (crop) proposal: new constraint resizeMode what a bout default cullen: ok, what abou tnone? peter: not allowed to do any resizing cullen: ok, love it. peter: there is still the question of default cullen "trash my video" jib: my one concern is that we are moving to a "rescaler API" we argued shoul dbe on the sink. if we re speaking about access to the source ...... i like crop'n scale cullen: i originally though like you. but justin convinced me that for screen sharing cannot let any pixel to be thrown. jib: different spec adam: surveillance video also need to keep all pixels. jib: ok peter: to you point that it s become a size and rescale API, yes, and that s what we aim at. Dan: i do not think it conflicts with anything else. dom: one confusing thing, there are many different constraints. <stefanh> FWIW I like Peter's proposal 'resizeMode' dom: we should start making the distinction between the constraints used through applyConstraint, and those used in GUM, .... <dom> objectFit <dom> +1 Harald: we should reuse the names from CSS peter: agreed. i just could not remember them when i wrote those slides. harald: i ll dig them up jib: so .... the implementation concern is not w3c"s priority, but .... for browser vendors, there are risks. peter: this should ONLY be used for aspect ratio. if the aspect ratio does nto change, it is not intended to be used. <stefanh> my understanding was that resizeMode would be used also when width/height was constrained jib: we might end up rescaling twice then peter: yeah i guess jib: do we want a 4th value "preserve aspect" as per cullen suggestion? peter: i ve never heard anybody asking for that. jib: any other comment ? consensus in the room dan: the conversation was going fine, so i was DL the audio system info jib: is there a pr <dom> consensus to add a resizeMode constraint peter: no, not yet <dom> JIB will produce a PR <stefanh> consensus on default mode? jib: ok, i ll write the PR. <stefanh> crop-and-scale? jib: with the new constraint we have a way forward, but we still need to define a default. cullen: constriant has a mechanism: minimize a istance function youenn: no scaling at all, so we would prefer minimize processing. jib vs cullen round 5 on constrint. constraint proposal: unless people specifically requires resizeMode, the default is to let the browser choose consensus <dom> Chair: Bernard_Aboba, Stefan_Hakasson_(remote) <dom> Agenda: [52]https://www.w3.org/2011/04/webrtc/wiki/November_6_-_7_2017 [52] https://www.w3.org/2011/04/webrtc/wiki/November_6_-_7_2017 <dom> [53]Slides [53] https://docs.google.com/presentation/d/1Sg_1TVCcKJvZ8Egz5oa0CP01TC2rNdv9HVu7W38Y4zA/edit <dom> ScribeNick: fluffy Content hints for MediaStreamTrack On slide for "Issue 478" Questions abotu what to do. Not many questions asnwered since last time This would be a new field on track or something like that Seems where we are is people previously thought this was generally a good idea but wanted to see specifics before they agreed to accept or not Argument for putting it in a track was that it needed to go to multiple things, like recorder, so that made it better in track and sender <dom> cullen: another question is whether we have enough and the right categories <dom> ... e.g. having 30 (sport, ...) vs 2 modes, this is very different conversation Main driving use case was indicate that video should be treated like screen cast Question does this go on tracks or sinks Concerns raised about auto setting as this implies it is a hint not a setting PeterB: If you make an app that does things like echo cancelation and voice enhancements, they mess up things like music ... browser has no sane way to set sane defaults for music vs speach ... as more things get added to the browser, the music app will need to know to turn it off if we don't have something like this Question about is auto value of enum or antoher flag. Dan: We have an "auto" setting for constrainable properties. This would allow the browser to use the seperate hint about media type (music/speach) to do this Adam: propose that is what we have today and this is what no constraint means Dan: OK, perhaps don't need auto Agrement in room we do not need to add Auto Question about if put it souce / sink JanIvar: lean towards source as it is descriptive of the track Adam: we don't have controll of all the sinks so better not to it there. The fact that it might look like a camera, but it is a source. So want to put on a Track. Proposal put it on track. (and be great if we could hear this from Randal if he is OK with this) Questioon what happens if you have a track and you change the value of the hint. Dan: as long as browser is operatinng with constraints, it can do what it wants and use info inculding this hint to decide how to process it JanIva: Set echo cancel false. Then set hint to voice. This will not chang echo cancel as it was explicitly set. But if it had not been explicitly set, then this hint might chang the echo cance Question about impact on GUM and extentiosn that don't know about it Dan: Do we need to say anything about what extention specs must say? and other thing how does this change implemetation of existing specs. Adam: we will have some hints, and if you exptend the base spec, you start with an empty bucket of items and so there is no impact of adding this Dom: we should have words on if you are a sink you need to consdier the impact of hints ... do we try and bring that into GUM 1.0 or if this is a next version thing ... answer depends on who plans to implement Bernard: one place this made a big differnces is when we do AV1 which has screen content encoding - prob bit longer than 6 months Question how would conflict setting be addressed Dan: There may be different places where you set the track. If you set it once and set it again, it replaces the previos. How much info carries to toher side. Questions on where you can set it. JanIvar: any idea that this would cary across RTP over a clone. Bernard: the decode knows what tools were used to encode but does not need to set the hint. Or the app might know from JS to turn it on. Would not assume it is carried over. Dan: what about clone DOm: wes should copy hint JanIvar: this is a weak hint and you send it to web audio, hint gets dropped ... if there was no processing, the hint would be lost <burn> ouch We need to avoid slipper slope of speach/child Dom: how to we deal with timeline of changes to attribute and when it happens to media PeterT: no gaurentee of when it applies. It's a hint What are audio category speach and music seems to be the winners Dom: so does speach and music corespond to what we need to adjust. ... is there a ref set of categories we could use from elsewhere to guide this fluffy: existing codec have speach and music Agrement in room: speach and music Moving on to question to video categories Bernard: even thought video came from screen, if it was a game, it might be motion not slides <dom> [54]https://wicg.github.io/mst-content-hint/#video-content-hint s uses "motion" and "detail" [54] https://wicg.github.io/mst-content-hint/#video-content-hints Adam: are we dupliating existing constraints ? Fluffy: propose motion, animation, detail <burn> (sorry about the echo - trying to find it) Bernard: might effect the pallet used for encoding Room is good with having at least motion detail Question do we add third category of animation Varun: will this confuse people ... will people know what detail is Dom: we will have to provide good definitions <stefanh> webrtc-pc talks about framerate/resolution [55]https://w3c.github.io/webrtc-pc/#dom-rtcdegradationpreferen ce [55] https://w3c.github.io/webrtc-pc/#dom-rtcdegradationpreference Dan: if input is a movie, don't change white balance or de nosie ... but if it is a camera would be good to do Varun: what if person says want motion and detail Dan: think abotu this as use case "this is what is going wrong", and thus "this is the hint you need" <burn> varun asked what about motion and no-motion <burn> then Peter said no-motion doesn't need a codec Fluffy: think abotu example with comptuer vision and no codec Adam: why do need the hint Dom: hint is only usefull if there is something delegated to the browser Adam: can we do this already PeterT: for many things yes, we have direct control, but for some new things we don't have, having a hint helps Varun: hints should not be on get user media <dom> [56]Accelerated Shape Detection in Images I mentioned earlier [56] https://wicg.github.io/shape-detection-api/ JanIvar: the gum makes a track, and then things would allow setting it ... setting low framerate is not good way to say prefer high res Varun: in screen capture of games, want high fps and good detail JanIvar: track sits between soruce and sink. It is a way to configure source but it is also may have to become an API for sync too - for example downscale Back to quesiton on do we add thrid animation category ? Dan: What is the use case Fluffy: arch fly through with synthetic artificial images Varun: because it is articfical mostion, we want to see all of it in games and such PeterT: had asked what you do because of this ... hint will not cover all use cases Fluffy: would turn off pre processing of white balance, de-noise, etc. Would pass differnt paramters to AOM1 codec. soares: want a way to turn off much of the pre and post processing varun: want fine things or don't mess with motion Adam: we are duplicating what might have in constraint Fluffy: this is a "do what I mean" not "do what I said" interface Dom: hard to know we need for do what I mean. Less convinced this model is good <stefanh> What would the default be between motion and detail? "balanced"? Dan: sugest we need more work on why this is needed PeterT: two things going forward. 1) recovince ourselves we are OK with this model 2) do we want to add a third JanIvar: like to see some examples of things we use this for that we don't want to do with direct controlls Varun: people do not want to figure out the the constraints and instead just leave it empty and have the hint do the right thing <dom> [we need a boolean "doTheRightThing" constraint] PeterT: uefull to have more specific of how an browser might implement this and how apps might use it <burn> [a Do What I Mean API is perfect, of course. If we had a Jarvis we could ask him to create that API] Moving on to Issue 1533 Clarify whether RTCRtpContributingSource members are live. #1533 <dom> [57]Clarify whether RTCRtpContributingSource members are live. #1533 [57] https://github.com/w3c/webrtc-pc/issues/1533 JanIvar presenting: We could get live objects where you get an object and get live values of it. This does not work becuse you don't get new particpats. And get old values for person that left. Conclusion: live objects are not usefull fluffy: why did we make it an interface Adam: so do we have to poll JanIvar: yes ... used to be one field, but now two. Why did we split Dom: to make it cleaner ??? Agreed no live objects Moving on to splitting priority up to two controlls RTCPriorityType combines relative bitrate with QoS priority, which applications may not want. #1625 PeterT: made PR to deal with this <dom> [58]RTCPriorityType combines relative bitrate with QoS priority, which applications may not want. #1625 [58] https://github.com/w3c/webrtc-pc/issues/1625 <dom> [59]Let javascript set different priorities for bitrate and DSCP markings. #1659 [59] https://github.com/w3c/webrtc-pc/pull/1659 dom: prefer clean break JanIvar: is there an impact on data channel Bernard: think it is OK Fluffy: on behalf of HTA, do we have people that set it seperate PeterT: Yes, we willhave people that set marking but not bitrate <burn> Cullen: and we will need to set bitrate. Varun: prefer ratio bitrates ... would use bitrate prioriyt with the 4 values Dom: was trying to get to if the bitrate priories in 4 bin was worth doing now and would used. Is there enough value that we do this Vaarun: fine with 8 4 2 1 locking Summary: If the IETF is ok with peters changes, then WebRTC is in favour of making this changes <adambe> scribenick: adambe Media Capture, WebRTC-PC and WebRTC-Stats Next Steps bernard: 15 issues relates to peer identity fluffy: a lot of issues on peer identity are bogus ... no one is working on it burn: Who's working on implementing (peer identity?) bernard: We should look at interop requirements fluffy: Our current text about two implementation is wrong ... it's more correct to say that there will be more than one browser dom: Is there a difference? bernard: It's also a question about how code is integrated in a browser dom: The JS API is a small part of this ... What we want to verify is that it actually works to send media between browsers burn: It's also important for independent people to be able to to implement the spec bernard; Our edge-stack is fundamentally different fluffy: It's hard to define independent implementations is our case; and it doesn't buy us much dom: We could probably get away with only testing the JS API, but I think we have a moral duty to do more (i.e. interop on media level) bernard: Do we need to change our text in the spec about "independent implementations"? burn: We need to file an issue to update this text AP on burn to file an issue fluffy: It's in our charter that we should demonstrate media interop bernard: Moving to other specs in the group ... We should have wider review of screen capture spec ... We need to check with the "depth" editors on the status ... The major action items are around screen capture jib: Several browsers have some kind of implementation of screen captuer <dom> [60]Screen Capture editors draft [60] https://w3c.github.io/mediacapture-screen-share/ burn: The API should be standardized fluffy: That's the easy part; the hard part is the privacy aspects bernard: We should include "screen capture" spec in the interim meetings AP on chairs: Bring screen capture in to the interm agendas Topic is: WebRTC stats status varun: summarizes the current issues soares: It's quite straight forward to test the stats stuff ... We just need to put in the work dom: Have you considered testing the life cycle of stats objects? ... We don't need to check the exact value of metrics. Just that they are not zero varun: It's not easy to do ... That seems like browser testing to me fluffy: It would be really nice to at some point test a bunch of stats between a set of browsers and verify that the result makes sense varon: That kind of activity could be part of the "ultimate goal" jib: Make sure we distinguish between API tests and "browser functionality tests" ... What about non-MTI stats? varun: We're focusing on the MTI-ones at the moment ... Do we want allow experiments with stats? fluffy: we can't disallow it ... Don't use prefixes on names varun: Google has an old and a new API. Experiments are currently done in the old API Discussion about experiments with origin trials scribe: and different approaches on doing experiments with stats <dom> ScribeNick: vr000m WebRTC NV / New work fine grained control for media, SVC, simulcast support. Cullen: talking about Simulcast support. ...: we have level of simulcast support today, however, we do not have everything. Peter Thatcher: for the server to negotiate simulcast, for the endpoint to receive simulcast (i.e., run the transcoding bridge on the browser) Cullen: Fine grain media stack control, we could take a high level api is the pc spec, today. The ORTC stuff is moving away from SDP, but it still follows the O/A. ...: so we should expose all the minimal features to the javascript. Pether Thatcher: ideas on WebRTC next steps Cullen: can do codecs via webassembly should explore that Alex: Explore the idea of using EME for hardware crypto PeterT: QUIC recap ...: QUIC features for datachannels ... QuicTransport ... QuickStream discussion about ordered and unordered Adam: there should be a way to get an event when data is acked on the send side jib: did you use "async for" from whatwg streams peter thatcher: there are some roadblocks. <jib> "async for" == for-await-of [61]https://github.com/tc39/proposal-async-iteration [61] https://github.com/tc39/proposal-async-iteration DECISION: Add a constructor to the RTCIceTransport to the WebRTC CR Peter can write other docs for Quic and other changes <soareschen> Cullen: How to make ICE easier? Wrap Up Items <dom> ScribeNick: soareschen Jan on issue 434 Disable user media by default in cross-origin iframes #434 <dom> [62]Disable user media by default in cross-origin iframes #434 [62] https://github.com/w3c/mediacapture-main/issues/434 <dom> [63]Feature Policy [63] https://wicg.github.io/feature-policy/ Chrome has different syntax for iframes, i.e. allow="microsoft" <dom> [64]allow attribute [64] https://wicg.github.io/feature-policy/#integration-with-html Jan: We should change the language in the spec for feature policy Related issue: 440 Adam: If Chrome is implemented that way and mozilla is considering, we should revisit that Dom: agreement ... Do mozilla expected to do both? Jan: just the attribute Dom: we can still move to PR if implementers already align with the changes ... reopen issue 440 Jan: does absence of allow='microphone' means disallowed? Dom: we could just reuse the sandbox Peter: more scary proposal <dom> Dom: I'll make sure to follow up internally to see if feature policy can move to a more formal status Audio-video RTC over QuicStream way to get audio/video over any transport Peter: low level way: stick in a track and get out a video frame ... for decoder, provide a frame, and at future time will go into a sink Cullen: the frame need to include details such as timestamp Does this mean the stream need to be ordered? Peter: only needed for key frames Dom: there are requests getting this feature into service workers Vr00m & Peter: flexibility of inspecting metadata of encoded frames Vr000m: Supporting SVC over QUIC? Cullen: JS is fast enough to do SVC in JS Vr000m: more metadata such as bitrate and target ... we can get a lot more control over this ... doing simulcast? Peter: We could have 3 decoders ... We can get extra metadata such as layer for simulcast Vr000m: Is it only one frame one frame? Peter: You can have your own framing scheme for multiple frames in one stream Cullen: When decoding one frame may be decoded into many frames Peter: Haven't thought through for multiple frames Dom: dictionary format for codec metadata ... are only codecs exposed are codecs that can be specified as dictionary? Peter: there are two ways, not sure which one is better Vr000m: on jitter buffer Peter: you can have control with your own jitter buffer implementation in JS Vr000m: want to control jitter buffer underneath to send only one frame Cullen: we can inspect timestamp metadata Peter: we can specify frame dependency Vr000m: if there is a jitter buffer underneath I want more control over it Peter: example for audio encoder/decoder ... audio jitter buffer is different. Sink is pulling at regular rate regardless of whether it is filled ... if there is nothing you'll get silence Vr000m: For video, we want to pass partial frames to video decoder Peter: for media over QUIC streams, we can experiment more easily without having to standardize first Dan: did you talk about isolation? Cullen: we can't have isolated media streams for this Peter: one way is that the encoder can encrypt Cullen: Or we can have isolated JS that does decoding Jan: Audio worklet can run limited JS in audio thread ... Decoding video on main thread isn't desirable Peter: technically we can implement encoder/decoder and jitter buffer in JS only difference is you can't get access to native or hardware implementations Cullen: You can build your own jitter buffer in JS, but most would use a default native implementation Peter: option B: high level send/receive example ... require mapping down to QUIC stream Dom: Youenne have some security concerns Cullen: if isolation is a concern, can tell the encoder to pass only encrypted SRTP packet ... For decoder, pass SRTP packet to it which connect directly to sink ... People who use this API probably care less about isolation <dom> [65]Media Source Extensions [65] http://w3c.github.io/media-source/ ??: People might say we don't need another JS interface for audio/video pipeline Peter: does WebAudio has encoders? No Scary ICE proposal Cullen: Scary ICE proposal ... API to send STUN requests ... All the stuff stay the same. On the other hands we have API to nofify STUN requests Things complicated for ICE is that we have two peers that test connection independently Cullen: Move complexity of ICE to JS. no need to do it billaterally ... no need check list and gatherer state ... JS shouldn't able to modify STUN packet content ... browser would keep track of best one found ... but JS can decided which one to use ... we can find paths that ICE can't currently find vr000m: Is it because current ICE have different priority? Cullen: we don't want to allow JS to construct custom STUN packet to exploit the server Peter: as long as there is limitation on how to send STUN packets it should be fine ... if we call send too fast, browser just return error Cullen: browser always send STUN response to STUN packets Peter: we also want notification responses Cullen: problem of ICE is it only discover 2-way paths, not one way ... enterprises often have firewalls and want 1-way path Peter: there are strict rules on how much/fast you can send in ICE, and we would still make those apply Cullen: we are very careful to keep the security properties of ICE Peter: we follow the ICE rules for punch etc Cullen: I am even willing and able to write a test for this Wrap up and actions Bernard: wrap up Cullen: for encoder/decover we prefer option A over B Peter: we want to write an ICE transport doc Adam and Dan: the testing PR #1657 has been merged, and there is now a testing.md with help Bernard: do we have conclusion on SVC? Cullen: we agree to not add new functionality for current spec Dom: we should consider one document for each new feature ... we need new documents for QUIC stream and ICE transport extension ... encoder/decoder might have much more impact beyond WebRTC Cullen: the proposal would be have a subset for the ICE protocol in IETF, then a W3c document for API access Project snowflake for new ICE protocol that's all for TPAC! Summary of Action Items Summary of Resolutions 1. [66]We adopt a test as you commit policy as describe in issue 1617 - we may revisit if it proves too complex in practice 2. [67]we don't change how offerToReceive*: false behaves in the spec [End of minutes]
Received on Wednesday, 22 November 2017 13:41:53 UTC