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 )