DataCue API
Chris Needham
12 August 2019
Goals
Continued...
Goals
On-receive and on-start event triggering
Images from DASH-IF Events document
DASH-IF player architecture
DASH-IF player architecture (type 3)
DASH-IF player architecture (type 1)
Proposal
HbbTV API (MPD events)
HbbTV API (emsg events)
TextTrack API changes to support DataCue and in-band events
Note: New or changed parts of the API are in bold text
TextTrack API changes
TextTrack API changes
In-band tracks in HTML
Sourcing in-band text tracks defines support for in-band events for various media formats
Format | inBandMetadataTrackDispatchType |
Ogg | Name header field value |
WebM | CodecID element value |
MPEG-2 | PMT stream_type, ES_info descriptor bytes |
MPEG-4 | mett box (MetaDataSampleEntry) mime_format field or metx box (XMLMetaDataSampleEntry) namespace field |
Browser support
Not all browsers have implemented inBandMetadataTrackDispatchType or DataCue
Browser | inBandMetadataTrackDispatchType | DataCue |
Firefox | Yes | No |
Chrome | No | No |
Safari | Yes | Yes |
Edge | Yes | Yes (?) |
HbbTV TextTrack property / emsg binding
TextTrack property | In-band emsg events |
kind | “metadata” |
label | (empty string) |
language | (empty string) |
id | (empty string) |
inBandMetadataDispatchType | schemeIdUri + “ “ + value |
mode | “hidden” |
TextTrackCue property / emsg mapping
TextTrackCue property | emsg data field |
DOMString id | unsigned int(32) id |
double startTime | Computed from: unsigned int(32) timescale and�unsigned int(32) presentation_time_delta |
double endTime | Computed from: unsigned int(32) timescale,�unsigned int(32) presentation_time_delta, and unsigned int(32) event_duration |
See TextTrack .inBandMetadata-�DispatchType | string scheme_id_uri |
string value |
Open questions
Synchronisation
Next steps