14:57:28 RRSAgent has joined #me 14:57:28 logging to https://www.w3.org/2021/05/17-me-irc 14:57:32 Zakim has joined #me 14:57:54 Meeting: Media Timed Events TF 17 May 2021 14:57:56 Chair: Chris 14:58:04 present+ Chris_Needham 15:01:54 present+ Rob_Smith, Iraj_Sodagar 15:02:01 nigel has joined #me 15:02:22 RobSmith has joined #me 15:02:46 Chris_Lorenzo has joined #me 15:02:51 Agenda: https://www.w3.org/events/meetings/2b88a9a9-b1bc-463e-973f-018e98cb1558/20210517T160000 15:03:02 Present+ Chris_Lorenzo 15:03:44 present+ Kaz_Ashimura 15:05:23 present+ Gary_Katsevman 15:05:56 scribenick: cpn 15:06:06 Topic: TextTrackCue unbounded end time 15:06:15 Present+ Nigel_Megitt 15:06:26 present+ Greg_Freedman 15:07:14 Chris: Implementation status? 15:07:16 rrsagent, make log public 15:07:20 rrsagent, draft minutes 15:07:20 I have made the request to generate https://www.w3.org/2021/05/17-me-minutes.html kaz 15:07:50 Rob: I've updated issue status to say the WebVTT and HTML changes have been made to allow unbounded end times, using +Infinity 15:08:13 ... Ongoing discussion on if and how to support in the WebVTT file format 15:08:51 ... Not seen any update on the browser implementations yet 15:09:19 ... I've looked into how to contribute to Firefox myself. Having the web platform tests is useful 15:11:31 ... Could follow with Philip on how to contribute to Chromium, hopefully someone at Google would do the implementation 15:11:50 Rob: I'll find out how to contribute 15:12:27 Topic: WebVTT unbound cues 15:14:04 Chris: Can we set a time for discussion? 15:16:29 Chris: Initially suggest Thursday at TTWG timeslot, alternate weeks 15:16:52 ... Alternatively, Monday in this timeslot. But doesn't work for Gary 15:17:17 ... Tuesday at 14:00 UTC, on weeks where there's no MEIG or Media WG meeting 15:19:38 ... Third Tuesday, so 15th June at 14:00 UTC 15:20:05 Topic: DataCue API 15:23:05 Chris: Several parts: DataCue just carries timing and the data. No mapping to inband events 15:24:21 ... In-band subscription API, subscribe by scheme id and allows you to set on-receive or on-start mode 15:25:14 ... works with file-based and MSE based playback 15:28:28 ... Where would the subscribe / unsubscribe methods sit? 15:31:31 q+ 15:32:36 Topic: Equivalency rules for emsg events 15:33:49 Nigel: What data fields are there? If you rewind the playhead, what would be the expected behaviour? 15:34:22 Iraj: There's also event start time and duration. The reason for equivalency rule is that in many application use cases, a player may join at a given time, but hasn't seen the event 15:34:32 ... So the content authors repeat the event multiple times in the stream 15:34:40 i|What data|-> https://github.com/WICG/datacue/issues/28 WICG/datacue issue 28 - DASH event message box equivalency| 15:34:57 ... If the event is placed multiple times, it's more efficient to dispatch one, not all to the application, as an optimisation 15:35:31 ... If the application processes the event, its adequate if it receives the event more times, it has no impact on the interactivity, no additional information 15:36:02 ... If you have event with those 3 values, the second one may not be dispatched. It should also have the same meaning to the application 15:36:47 Nigel: What's the expected behaviour if there's a rewind operation, e.g., to 1 hour before? 15:37:28 Iraj: The rule for equivalency, the client may choose not to dispatch. There's no rules for not dispatching, it's just an optimisation 15:37:59 ... If you rewind and then playback, if it happens to have the same scheme id and value, it may choose not to dispatch it again 15:38:25 ... There's no notion of order of applying the dispatching equivalency rule 15:38:57 ... Equivalent means if the client acts on the event, it should have the same effect. You're not replacing the payload with another 15:39:27 ... If the client shows a message on the screen, if the event is present multiple times it would have the same visual effect 15:39:46 ... The idea is to use redundant events 15:40:33 Nigel: This suggests that the time marches on algorithm for text tracks applies in this case 15:41:55 Iraj: Events with the same scheme id uri, value are from the event stream 15:42:27 ... Use id to check if the event has been dispatched already. Keep a list of ids already dispatched 15:42:48 Nigel: So dispatch means create a text track cue? 15:43:26 ... So you create a cue object in a TextTrack with some begin and end time with payload 15:44:09 ... The time marches on activates the cues. 15:44:32 Iraj: Yes, when the player time is within that time region, it shows those as active 15:46:33 ... The UA could discard equivalent events, but not required. No hard rule for lifetime 15:47:35 Chris: We'd expect the browser not to create a duplicate in that case 15:48:05 Iraj: The second text track cue would be exactly the same as the previous one. The purpose of the id is to allow you to ignore the second one 15:48:41 q+ 15:48:45 ack n 15:48:45 ack n 15:49:28 Gary: This seems to map well to the unbounded cues API. Does emsg have an end time? 15:49:57 Iraj: It has two parameters: start time and duration. You can put a specific value to signify infinite duration 15:50:18 ... Duration could be zero 15:50:42 Gary: If it's infinite duration, is the message active forever? For zero duration, is it active until next message? 15:51:53 Iraj: Zero duration means act on it, then done. Infinite duration means keep active forever 15:52:11 Gary: Is there a way to update the duration of an infinite duration message? 15:52:34 Iraj: There's no explicit way to say that one message is an update of another 15:52:58 ... As part of the data payload, you can say it's an update. This is scheme owner specific. 15:53:29 ... Or you can use equivalency rules, and put a specific duration on it. If the player gets the first message and not the second, it won't apply the update or change 15:53:44 ... You should assume the UA won't receive all the history of changes of an event 15:54:10 Chris: So the payload must be designed so there's no dependency 15:54:12 Iraj: Exactly 15:54:31 ... It's very important what you signal and what it means. Authors need to apply caution 15:54:50 Gary: I can see this maps easily to TextTrackCue. Zero duration is more complicated 15:55:03 q+ 15:55:10 ack gkatsev 15:55:13 ... The way Safari handles it with ID3 cues, is that the cue is active until the next one comes in 15:55:37 Iraj: You can do that by making it scheme dependent 15:56:19 Gary: I'm thinking how you'd implement in the browser so that you don't lose it. There's a likelihood of missing it [using cuechange events 15:56:40 ... Safari sets the duration to length of video, infinity. It then updates the end time when the next one comes in 15:57:08 ... A new ID3 arriving means the previous one has finished 15:58:08 Iraj: I think we can build the same thing here, need to think about how to make it equivalent 15:58:57 Rob: This sounds very much like what we are talking about in WebVTT issue 496 15:59:28 ... I'm interested in the zero duration cues. WebVMT does something similar, which is for stateful changes. It's a way of ending a cue 16:00:01 ... If you have an infinite cue and you can update it with a zero duration cue that means "stop", and potentially then restart it later 16:00:05 q+ to say that the Text Track Cue specification permits multiple cues with identical start and end times. 16:00:22 ack RobSmith 16:01:30 Nigel: Regarding multiple text track cues with identical start/end times, the spec allows this 16:01:45 ... Also where start and end time are identical. They're ordered by start time, then order of insertion 16:02:08 -> https://html.spec.whatwg.org/multipage/media.html#text-track-cue Text Track Cue specification 16:02:53 Iraj: I recently wrote a document on the timing model for MSE, append, dispatch and purging process. We're discussing in DASH-IF and MPEG 16:03:41 Chris: I recommend adding to our issue tracker: https://github.com/WICG/datacue/issues 16:06:59 Topic: Next call 16:07:16 Chris: Next week, 24 May at 15:00 UTC 16:07:23 rrsagent, draft minutes 16:07:25 I have made the request to generate https://www.w3.org/2021/05/17-me-minutes.html cpn 16:07:33 [adjourned] 16:14:36 rrsagent, make log public 16:14:36 rrsagent, draft minutes 16:14:36 I have made the request to generate https://www.w3.org/2021/05/17-me-minutes.html kaz 16:14:40 rrsagent, stop