2.2.4.5 TfrfBox

The TfrfBox field and related fields encapsulate the absolute timestamp and duration for one or more subsequent fragments of the same track in a live presentation. This field SHOULD be ignored if it appears in an on-demand presentation. For a live presentation, this field MUST be present unless one of the following conditions is true:

  • The containing track for this fragment is a sparse track.

  • The number of subsequent fragments in the track is less than the value of the LookaheadCount field, specified in section 2.2.2.1, for the presentation.

  • The LookaheadCount field is set to 0.

TfrfBox (variable): The metadata container for per-sample defaults.

TfrfBoxLength (4 bytes): The length of the TfrfBox field, in bytes, including the TfrfBoxLength field. If the value of the TfrfBoxLength field is %x00.00.00.01, the TfrfBoxLongLength field MUST be present.

TfrfBoxLongLength (8 bytes): The length of the TfrfBox field, in bytes, including the TfrfBoxLongLength field.

TfrfBoxVersion (1 byte): The box version. If this field contains the value %x01, the TfrfBoxDataFields64 field MUST be present inside the TfrfBoxFields field. Otherwise, the TfrfBoxDataFields32 field MUST be present inside the TfrfBoxFields field.

FragmentCount (4 byte): The number of fragments for which the TfrfBox field contains information.

TfrfBoxDataFields32 (variable): The absolute timestamps and durations for a set of subsequent fragments, represented as 32-bit values. If the value of the TfrfBoxVersion field is %x00, the number of instances of this field MUST be exactly the value of FragmentCount.

TfrfBoxDataFields64 (variable): The absolute timestamps and durations for a set of subsequent fragments, represented as 64-bit values. If the value of the TfrfBoxVersion field is %x00, the number of instances of this field MUST be exactly the value of FragmentCount.

FragmentAbsoluteTime32 (4 bytes): The absolute timestamp of the first sample of a subsequent fragment, in timescale increments for the track.

FragmentDuration32 (4 bytes): The total duration of all samples in a subsequent fragment, in timescale increments for the track.

FragmentAbsoluteTime64 (8 bytes): The absolute timestamp of the first sample of a subsequent fragment, in timescale increments for the track.

FragmentDuration64 (8 bytes): The total duration of all samples in a subsequent fragment, in timescale increments for the track.

The syntax of the fields that are defined in this section, specified in ABNF [RFC5234], is as follows.

  
 TfrfBox = TfrfBoxLength TfrfBoxType [TfrfBoxLongLength] TfrfBoxUUID TfrfBoxFields
           TfrfBoxChildren
 TfrfBoxType = %d117 %d117 %d105 %d100
 TfrfBoxLength = BoxLength
 TfrfBoxLongLength = LongBoxLength
 TfrfBoxUUID = %xD4 %x80 %x7E %xF2 %xCA %x39 %x46 %x95
               %x8E %x54 %x26 %xCB %x9E %x46 %xA7 %x9F
 TfrfBoxFields = TfrfBoxVersion
                 TfrfBoxFlags
                 FragmentCount
                 (1*TfrfBoxDataFields32) / (1*TfrfBoxDataFields64)
 TfrfBoxVersion = %x00-01
 TfrfBoxFlags = 24*24RESERVED-BIT
 FragmentCount = UINT8
 TfrfBoxDataFields32 = FragmentAbsoluteTime32
                       FragmentDuration32
 TfrfBoxDataFields64 = FragmentAbsoluteTime64
                       FragmentDuration64
 FragmentAbsoluteTime32 = UNSIGNED-INT32
 FragmentDuration32 = UNSIGNED-INT32
 FragmentAbsoluteTime64 = UNSIGNED-INT64
 FragmentDuration64 = UNSIGNED-INT64
 TfrfBoxChildren = *( VendorExtensionUUIDBox )