21:01:11 RRSAgent has joined #mediawg 21:01:15 logging to https://www.w3.org/2024/07/09-mediawg-irc 21:01:15 cpn has joined #mediawg 21:01:17 Meeting: Media WG Call 21:01:21 Chair: Chris 21:01:29 Agenda: https://github.com/w3c/media-wg/blob/main/meetings/2024-07-09-Media_Working_Group_Teleconference-agenda.md 21:02:49 present+ Jean-Yves_Avenard, Francois_Daoust, Bernard_Aboba, Jianjun_Zhu 21:03:02 present+ Greg_Freedman 21:05:58 present+ Eugene_Zemtsov 21:06:17 present+ Tommy_Steimel 21:06:26 scribe: tidoust 21:09:45 cpn: [reviewing agenda items, Media Session, Media Capabilities, and TPAC planning] 21:09:57 eugene: Some proposal to add some stuff to VideoFrameMetadata 21:10:08 Topic: Media Session 21:10:16 Subtopic: Add voiceactivity action 21:10:36 -> https://github.com/w3c/mediasession/pull/333 Add voiceactivity action 21:11:08 jianjun: When we have conferencing activity, we propose to add a new action to Media Session to do voice activity detection. 21:11:41 ... This event was discussed in the Media Capture Extensions spec, but I was encouraged to move it to the Media Session API because of the setMicrophoneActive method. 21:11:58 ... With the method, we can easily enable a microphone after the event is received. 21:12:28 Tommy: It seems reasonable to me. I would like to run it through [missed] as well, but he's out today. 21:12:35 ... I'm ok with this. 21:12:57 Jean-Yves: There was a discussion on Media Session vs. MediaStreamTrack in GitHub 21:13:07 cpn: Yes, and I thought the argument was reasonable. 21:13:16 Jean-Yves: We support this too from a Webkit perspective. 21:13:24 cpn has joined #mediawg 21:13:38 Jianjun: It looks like there is OS support in MacOS and iOS. 21:13:49 Jean-Yves: Yes, there is a user interface showing the information currently. 21:14:13 ... I'm showing up on behalf of Youenn to voice support. 21:14:27 cpn: Tommy, do you want some more time to think about it? 21:14:37 Tommy: I'm comfortable with this, I can approve the PR today. 21:14:49 cpn: I may have some minor editorial things to suggest on the PR. 21:15:06 Jianjun: If you have any detailed comment about this new API, please raise it on the PR. 21:15:18 cpn: OK, it seems we all agree on the direction this is going, that's good news. 21:15:25 Topic: Media Capabilities 21:16:00 cpn: Marcos and I were doing a review of the spec last week, and dug into a couple of issues that we'd like to discuss. 21:16:10 subtopic: Issue #44 - powerEfficient 21:16:51 cpn: We looked at the issue and based on the discussion that we've had in the group over time, we tried to add a more precise definition of what we mean by power efficient. The text leverages the suggestion from Mounir back in the days. 21:17:31 ... Based on power draw being optimal, not restricted to hardware/software. 21:18:09 ... Also, the return that you get does not take into account the current power source of the device, unless that has some side effects such as enabling/disabling encoding/decoding hardware. 21:18:34 ... The intent is to clarify what we mean and make it more precise. There's a PR #221 for that. 21:19:14 Jean-Yves: It may good to look at how implementations have done. I've worked on implementations for Gecko and Webkit. There is no check of the power source indeed. 21:19:23 ... The basic check is really hardware-decoded or not. 21:19:38 s/hardware-decoded/hardware-accelerated 21:19:51 ... For software, anything below a certain resolution is considered power efficient. 21:20:01 ... The thought is "ok to use on a mobile device". 21:20:48 ... I don't believe implementations actually test on power usage. 21:21:18 Eugene: For Chromium, a long time ago, Chromium measured in the lab whether to send things to the GPU or in software. 21:21:43 ... That's how the resolution boundaries were determined, based on actual power usage. That's a heuristics, for sure. 21:21:56 ... The browser cannot measure power draw on each and every device. 21:22:08 ... It's not very precise, but the intent was there. 21:22:35 ... Anyway, it is in a way motivated by power consumption, just proxied by heuristics. 21:22:51 Jean-Yves: It was motivated by AV1 at some point. 21:23:11 Eugene: I don't think it was tested for particular codecs. More about copying stuff to GPU and back. 21:23:46 Jean-Yves: Right. Knowing the context on how it was implemented could provide more input on what "power efficient" means. 21:23:54 ... It is vague by definition. 21:24:08 ... I don't think that we want a crisp definition in any case due to fingerprinting issues. 21:24:45 cpn: Right. What we have here does not commit us to anything. It's really about clarifying things. We're trying not to make that a query for "are you using hardware decoding or not?" 21:25:00 ... My question is: does the rephrasing make an improvement to the spec, or should we go further? 21:25:21 Bernard: I think it explains what we see in practice. 21:25:33 ... And in particular the fact that it does not equal hardware-accelerated. 21:25:38 cpn: That was the goal, yes. 21:26:01 ... The PR is up. Please do review and comment. 21:26:11 Eugene: I approved it! 21:26:45 Jean-Yves: No more substantive comment from me. 21:26:54 cpn: OK, I'll take this as approved then. 21:27:06 subtopic: Interoperablity of MIME type handling 21:27:39 cpn: Next issue we looked at was #69, which started from a comment from Anne not to use valid MIME type. 21:28:02 ... Looking at implementations, Chrome works per spec, rejecting an invalid MIME type 21:28:25 ... But both Firefox and Webkit accept the invalid MIME type. 21:28:31 ... This is reflected in a test in WPT. 21:28:37 ... We need alignment. 21:28:50 ... Two ways: make Firefox and Safari implementaions more strict. 21:28:55 ... Or relax the implementation in Chrome. 21:30:00 ... It's not about the codec. Chrome would accept the "audio/mpeg;" string without ";" 21:30:24 q+ 21:30:46 Jean-Yves: adding a WPT is fine and it's up to every implementer to align. 21:31:10 cpn: I'm not sure a new test is needed. 21:31:19 ... There's follow up to be done there. 21:31:43 ... We started a PR. There was a previous PR a while ago, to turn this into an algorithmic kind of step. 21:32:32 Bernard: We're in the process of closing the RTP payload registry that the spec references. 21:32:39 ... The reference will need to be updated. 21:33:22 ... There was confusion between two sources. We're merging things up to avoid it. 21:34:14 cpn: The MIME type parsing is dependent on the codec for parameters. I think we want to point at this registry to avoid going into details. 21:34:30 ... This is all invoked as part of an algorithm that validates an audio/video configuration. 21:34:45 ... You might be tempted to say little about the MIME type. 21:34:54 ... At the other extreme, you may be more strict. 21:35:10 ... We're trying to be somewhere in between. 21:35:21 ... That's my reading of what we have at the moment. 21:36:34 Francois: My understanding from Anne is that "valid media mime type" is a grammar check. I don't know browsers enforce the grammar, but other constructs might be valid per grammar 21:36:39 scribe+ cpn 21:37:13 ... mimesniff defines how to parse a mime type, so by that algorithm parsing with an added semicolon still gives you a mime type 21:37:54 ... So we'll need to use the mimesniff algorithm, but do we add the grammar check 21:38:21 ... We should check the mimesniff spec 21:38:30 Chris: And check what implementations do 21:38:37 https://mimesniff.spec.whatwg.org/#ref-for-valid-mime-type%E2%91%A1 21:38:57 Francois: There's a similar example in the mimesniff spec for this particular case 21:39:44 ... So I'm wondering if implementations validate the structures or just parse per mimesniff, which is what Firefox and Safari do, but Chrome seems to do something extra 21:40:32 Jean-Yves: You pass in the string and it gives you a structure, check whether the codecs value is there or not. The semicolon may not make a difference 21:40:53 cpn: This may be something we want to pick up next time we talk with Marcos. 21:41:29 ... It's not clear which way we should go. 21:41:44 ... Or whether we think these differences are insignificant. 21:42:02 ... If both are correct interpretations of the spec, then perhaps the tests are being too strict. 21:43:16 subtopic: Other ongoing PRs 21:43:45 cpn: We have a bunch of open pull requests against Media Capabilities, some from Bernard and me. I'd like to get these merged in and then we can sort of continue with those other changes. 21:44:09 ... If you could have a quick look through these PRs, that would be great. 21:44:23 Topic: VideoFrameMetadata 21:44:32 s/Topic: VideoFrameMetadata/Topic: WebCodecs - VideoFrameMetadata 21:44:57 -> https://github.com/w3c/webcodecs/pull/813 PR #813 21:45:19 cpn: Agreement that this is useful stuff. 21:45:36 Bernard: The PR just defines these things but it does not include any codec behavior. 21:45:58 ... The last piece that Youenn suggests is defining where this metadata is created. 21:46:04 ... He suggests putting it in the source. 21:46:24 ... These specs don't talk about VideoFrame at all. 21:46:36 ... The question is where we might want to add this. 21:46:54 cpn: Perhaps requestVideoFrameCallback is not the right thing to reference. 21:47:26 Eugene: You may not always have receiveTime. 21:48:09 ... When we discussed VideoFrameMetadata, there are a number of specs that want to put stuff into VideoFrame. It's expected that the WebCodecs API will not change because of this. 21:48:30 ... At this point, as I see it, we just put extensions that are useful for other types of media capture. 21:49:27 ... This is the extension point where other APIs add metadata. Segmentation, Face detection, etc. 21:49:44 ... receiveTime will be available in some implementations when the video frame comes from WebRTC. 21:50:00 ... All of them will be defined in their own specs. 21:50:24 ... I would just put it there and leave it for other APIs to use. 21:50:41 Bernard: If it doesn't affect WebCodecs, why leave it there in WebCodecs and not use the registry? 21:51:17 Eugene: We had that discussion before. The consensus in the WG was that it would be great to advertise the metadata. 21:51:25 Bernard: But that was the registry. 21:51:33 Eugene: But this is a registry entry, right? 21:51:40 Bernard: Ah, ok. 21:51:58 cpn: Do we plan to add these times to WebCodecs at some point? 21:52:12 Eugene: That's the sort of can of worms that I would prefer not to open. 21:52:25 ... This is going to be very separate discussions. 21:52:46 ... Let people copy whatever metadata they want. 21:52:54 ... It shouldn't be hard to copy timestamps around. 21:53:22 ... That's what Google Meet does. Capture timestamps are used for A/V sync. They copy it over through side channels. 21:53:47 Bernard: The PR makes sense in that it modifies the registry without touching WebCodecs. 21:54:14 cpn: If Media Capture is where these get surfaced. 21:54:36 Bernard: Media Capture Transform would be the source for these. We can change that. 21:54:54 cpn: Could requestVideoFrameCallback then refer back to those? 21:55:01 Eugene: I don't know. 21:55:54 ... Feedback would be that we would love to see PRs against the relevant specs that promise to emit these timestamps. 21:56:04 cpn: So not merging this as is, only with references. 21:57:15 ... Having these things defined at the source where they are emitted. That's aligned with Youenn's feedback, I think. 21:57:26 Topic: TPAC 2024 21:58:04 cpn: I'm preparing the agenda for TPAC 2024. We have a number of slots planned. Bernard, should we coordinate on what the WebRTC joint meeting should look like? 21:58:22 Bernard: Yes, we need to get human beings signed up to do the slides. 21:58:31 cpn: That's really what I want to get for the other time slots. 21:58:46 ... What are the main things that you'd like to talk about? What is the best use of our time? 21:59:11 ... Please label issues. If there are higher level discussions to have, that's great as well. 22:00:01 Bernard: Some discussion on references to WebCodecs, related to WebRTC, from [missed]. He'll be there in person at TPAC. 22:00:39 Jean-Yves: For MSE, the main issue for me is merging the tests. I haven't looked at PRs and issues in the repository for now. 22:00:56 cpn: Thank you all! 22:01:01 RRSAgent, draft minutes 22:01:02 I have made the request to generate https://www.w3.org/2024/07/09-mediawg-minutes.html tidoust 22:01:15 RRSAgent, make logs public