ExoPlayer
ExoPlayer copied to clipboard
Handling of DASH events / 23009-1 5th edition - timing compliant EMSG handling
23009-1 5th edition - timing compliant EMSG handling The handling of DASH events embeded in ISOBMFF emsg boxes is different between 23009-1 4th edition and 23009-1 5th edition. In 23009-1 4th edition there is a restriction on the presentation of events that says: "presentation_time: provides the Media Presentation time of the event measured on the Movie timeline, in the timescale provided in the timescale field; the value shall not be less than the earliest presentation time of the carrying Segment." This means that the start time of an event should always be higher than the EPT of the segment carrying the event. This restriction will be removed in the 5th edition of the ISO spec. Some packagers have already implemented this change. In order to be compliant to that, the player implementation shall consider the duration of an event. From the DASH-IF event spec: "on-start Dispatch Mode: Dispatching exactly at ST, which is the start/presentation time of the event/metadata sample. The DASH player shall dispatch the event to the application at the presentation time of the corresponding media sample, or in the case of the start of playback after that moment and during the event duration, at the earliest time within the event duration. In this mode, since the Applications receive the event/sample at its start/presentation time, it may need to act on the received data immediately." In order to fullfill this requirement players need to consider the duration of an event to determine if an event is to be dispatched or not. To our best knowledge the Exoplayer is currently ignoring the duration of an event when deciding whether to dispatch an event.
Hi @ojw28, Let me ask if this bug (or maybe feature) is part of any short or long term roadmap? Thank you!
Hi @ojw28 , @christosts , Just have updated the exoPlayer in our project to v 2.16.1 and we see this EIT issue is still not handled. Just a friendly reminder, in case this is panned to be addressed at all. Cheers.
I'll update this to a feature request. Are you aware of an example stream for testing where the events have a duration? We likely won't get around this implement this soon I'm afraid and it also needs some thought how the integration should work because the current Metadata
class doesn't have a duration.