-
Notifications
You must be signed in to change notification settings - Fork 6
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
DASH inband event processing using MSE data model #30
Comments
Thank you! |
Thanks again @irajs for sharing this document. It's really helpful. Would it be OK for us to edit this to define the proposed browser processing steps for event messages? I have a few specific comments and questions:
For on_receive dispatch mode, what should happen if the player seeks to a time before the event start time and then plays through the event start time. Should the event be dispatched again when the playback position reaches the event start time? For on_start dispatch mode, should this event be dispatched immediately, since event_start <= playback_position <= event_end ?
The dispatch buffer described in the document seems equivalent to the HTML text track model, which maintains a list of cues. Is the dispatch buffer timing model affected by the MSE 'segments' and 'sequence' append mode? Broadly, we need to define how events are sourced (parsed) from the media container and placed onto the media timeline. From there, the HTML time marches on defines how the events are dispatched to the web application.
I think that the HTML time marches on steps will correctly handle dispatching start/end events to the web application at the right time without needing to do divide the event into subranges. This also relates to section 4.2 step 3(e)(ii).
As far as I know, the MSE mechanism for overwriting a segment is to call Figure 3 shows that event E2 is unchanged following overwriting part of the segment. Are there any cases where the events would be removed from the dispatch buffer?
To support specifying the dispatch mode, we would need to add Step 2, Event buffer initialization, maps directly to
The "already-dispatched" table would be a new browser feature. We need to figure out how / where to add this. How long would the "already-dispatched" table look back? This is related to the equivalency lifetime question in #28
As already mentioned, I think that dispatch is handled already by the time marches on steps. Dispatch in the context of the TextTrack APIs would mean firing
Should this be the website’s responsibility, or do we expect the browser to do this? Purging is implemented by calling |
Yes. Of course. This is just the basic timing model. It has to be translated to the browser processing model.
It depends:
Yes if it is not dispatched before.
No. The difference between segments mode and sequence mode is the adjustment of the Time Stamp Offset (TSO) explicitly vs implicitly. The position of an event is relative to the position of the segment in the buffer both for v0 and v1 events after applying TSO. So the impact of TSO is already considered in the process.
That's great. It simplifies the process.
Yes, if the entire segment is overwritten. This is mentioned in the perge process.
Then I suppose such a browser treats all event schemes as schemes with the on_start dispatch mode and that would be a limiting factor for interoperability. For instance, SCTE 35 events are already designed for on_receive mode and they won't work properly with browsers not supporting this mode.
I think it should be left to implementation as I mentioned in #28.
Great!
A similar process for media buffer purging can be used for event dispatch buffer purging. But I think it is the browser's responsibility (at least I think this is the case in MSE for the media buffer. But I might be wrong). |
I have uploaded a markdown version of the document here. |
This document provides an extended W3C Media Source Extension (MSE) model for the processing of DASH inband events.
DASH-EventProcessing4W3C.docx
The text was updated successfully, but these errors were encountered: