Timed Metadata Formatting

Validator implements checks to assert conformance to ISO/IEC 23001-18 Event Message Track for carriage of timed metadata.

Must Fix: ISO/IEC 23001-18 clause 7.2 Sample Entry

Event Message tracks shall use the EventMessageSampleEntry format.

Must Fix: ISO/IEC 23001-18 clause 7.4 Sample format

Each ISO-BMFF sample in the track shall contain either

  • one or more EventMessageInstanceBoxes

  • or a single EventMessageEmptyBox

In the last case, the sample contains no EventMessageInstanceBoxes, and no events are active during the sample presentation time. Note: There is no required ordering of the EventMessageInstanceBoxes in the sample

Must Fix: ISO/IEC 23001-18 clause 7.4 Sample Consistency

All instances of the same event shall contain identical values for all fields except the presentation_time_delta. Each instance is documented with one EventMessageInstanceBox in the track. Instances of the same event in the track are detected by using the algorithm as defined in ISO/IEC 23009-1 for detecting duplicate event messages. Each EventMessageInstanceBox documents an event message which has or will have an active interval.

If the media presentation time of the containing sample is T, the active interval is defined to run: from (T + presentation_time_delta) to, but not including (T + presentation_time_delta + event_duration). Each sample in the track also has a duration D. Each sample shall contain all events that have an active interval that overlaps the sample’s time interval [T, T+D). A sample may also contain instances of other events that become active after T+D i.e. future events.

Must Fix: ISO/IEC 23001-18 clause 8 Timing constraints

Any sample with a presentation time and duration, shall contain all EventMessageInstanceBoxes active during the timespan from the presentation time up to but not including presentation time plus duration. Consequently, EventMessageInstanceBoxes with a duration extending multiple samples are carried in each of these samples.

A change in the set of active events shall trigger a sample boundary, with a matching presentation time, in other words, a new sample is introduced anytime an event is starting or ending

If the EventMessageInstanceBox.duration is zero or unknown, the sample duration shall not be zero, and may for example be a small value such as a single tick on the timescale.

Should Fix: ISO/IEC 23001-18 clause 8 Timing constraints

One or more samples carrying EventMessageEmptyBox should be used to cover timespans where no event is active. If not the case, the sample contains an EventMessageInstanceBox that will become active or was active in the past.

If the sample is the first sample containing one or more specific instances of EventMessageInstanceBox, the EventMessageInstanceBox. presentation_time_delta should not be negative. However, if prior samples or parts of the track are not available EventMessageInstanceBox. presentation_time_delta may be negative to reflect the accurate presentation time of the event. (amended)