Applies to: Protocol and format interpretation for developers inspecting authorized media delivery.

The useful distinctions

  • TTML timeContainer can be par or seq.
  • Sequential timing places child intervals in sequence.
  • TTML timing semantics use the referenced SMIL timing model with TTML constraints.

Expand the small sequence

The fictional division begins five seconds into the document and declares sequential child timing. Its first paragraph lasts two seconds and the second lasts three. With no explicit child begin offsets, the first occupies document interval five through seven and the second seven through ten. The sequence therefore spans five seconds even though neither paragraph explicitly contains the number ten. This is why a flat table of raw dur attributes is not a complete cue ledger.

Keep the container context in transformations

A converter that exports standalone cue intervals must resolve the parent start and sequential ordering before writing absolute timestamps. Simply treating every child's missing begin as document time zero would stack the two paragraphs at the wrong point. Conversely, changing the division to parallel timing would change the calculation and requires a fresh expansion. The example avoids repetition, nested sequences, and indefinite children so each boundary is unambiguous. A practical review should preserve the source hierarchy alongside the expanded intervals, making it possible to trace a changed boundary back to its controlling parent or prior sibling. If the duration of the first child changes, the second child's resolved start changes as well even though its own attributes remain untouched.

Worked example · synthetic

The resolved intervals are [5,7) and [7,10) seconds. The second starts after the first child's two-second duration; these document boundaries are calculated from the hierarchy.

Synthetic text example; no network operation has been performed.

<tt xmlns="http://www.w3.org/ns/ttml" xml:lang="en">
  <body><div begin="5s" timeContainer="seq">
    <p dur="2s">Place the ruler.</p>
    <p dur="3s">Draw the line.</p>
  </div></body>
</tt>

Check the interpretation

  • Resolve ancestors before exporting child intervals.
  • Distinguish seq from par explicitly.
  • Recalculate later siblings after changing an earlier sequential duration.