2.2.4.6 TfhdBox

The TfhdBox field and related fields encapsulate defaults for per-sample metadata in the fragment. The syntax of the TfhdBox field is a strict subset of the syntax of the Track Fragment Header Box that is defined in [ISO/IEC-14496-12].

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

TfhdBoxLength (4 bytes): The length of the TfhdBox field, in bytes, including the TfhdBoxLength field. If the value of the TfhdBoxLength field is %00.00.00.01, the TfhdBoxLongLength field MUST be present.

TfhdBoxLongLength (8 bytes): The length of the TfhdBox field, in bytes, including the TfhdBoxLongLength field.

BaseDataOffset (8 bytes): The offset, in bytes, from the beginning of the MdatBox field to the sample field in the MdatBox field.

SampleDescriptionIndex (4 bytes): The ordinal of the sample description for the track that is applicable to this fragment. This field SHOULD be omitted.

DefaultSampleDuration (4 bytes): The default duration of each sample, in increments that are defined by the TimeScale field for the track.

DefaultSampleSize (4 bytes): The default size of each sample, in bytes.

DefaultSampleFlags (4 bytes): The default value of the SampleFlags field for each sample.

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

  
 TfhdBox = TfhdBoxLength TfhdBoxType [TfhdBoxLongLength] TfhdBoxFields                                                          
           TfhdBoxChildren                                                          
 TfhdBoxType = %d116 %d102 %d104 %d100                                                          
 TfhdBoxLength = BoxLength                                                          
 TfhdBoxLongLength = LongBoxLength                                                          
 TfhdBoxFields = TfhdBoxVersion                                                          
                 TfhdBoxFlags                                                          
                 [ BaseDataOffset ]                                                          
                 [ SampleDescriptionIndex ]                                                          
                 [ DefaultSampleDuration ]                                                          
                 [ DefaultSampleSize ]                                                          
                 [ DefaultSampleFlags ]                                                          
 TfhdBoxVersion = %x00                                                          
 TfhdBoxFlags = 18*18RESERVED-BIT                                                           
                DefaultSampleFlagsPresent                                                          
                DefaultSampleSizePresent                                                          
                DefaultSampleDurationPresent                                                          
                RESERVED-BIT                                                          
                SampleDescriptionIndexPresent                                                          
                BaseDataOffsetPresent                                                          
 BaseDataOffset = UNSIGNED-INT64                                                          
 SampleDescriptionIndex = UNSIGNED-INT32                                                          
 DefaultSampleDuration = UNSIGNED-INT32                                                          
 DefaultSampleSize = UNSIGNED-INT32                                                          
 DefaultSampleFlags = SampleFlags                                                          
 TfhdBoxChildren = *( VendorExtensionUUIDBox )