Tracking is a timed text codec. It allows to localize a time-continuously sampled data file by providing geolocalisation from a GPS device. This geolocalisation is NMEA sentences and multimedia players have to parse them to extract informations (position, speed, orientation, satellites informations, ...).

Tracking is appropriate for use with all Ogg media formats. This description explains how to map Tracking into Ogg.

Tracking mapping into Ogg

When Tracking is mapped into an Ogg logical bitstream it needs to be serialised first. XML is a hierarchical file format, so is not generally serialisable. However, Tracking has been designed to be serialised easily.

All of the Tracking bitstream information is text. As it gets encoded into a binary bitstream, an encoding format has to be specified. To simplify things, UTF-8 is defined as the mandatory encoding format for all data in a Tracking binary bitstream.

The media mapping for Tracking into Ogg is as follows:

The bos page contains a Tracking ident packet.

The content or data packets contain the "data" tags each encoded in their own packet and inserted at the accurate time.

The eos page contains a packet with an empty data tag.

The Tracking ident header packet

The Tracking logical bitstream starts with an ident header which is encapsulated into the Tracking bos page. The ident header contains all information required to identify the Tracking bitstream and to set up a Tracking decoder. It has the following format:

The Tracking data packets

The data packets of the Tracking bitstream contain the Tracking data elements. Their position attributes however only exist for authoring purposes and are not copied into the bitstream (to avoid contradictory information), but are rather represented through the time mapping of the encapsulation format that interleaves Tracking data with data from other time-continuous bitstreams. Generally the time mapping is done through some timestamp representation and through the position in the stream.

A data tag is encoded with all tags (except for the position attribute) as a string printed into a clip packet. The data tag's position attribute tells the encapsulator at what time to insert the clip packet into the bitstream. It duration is one second.