2.2.3 Fragment Request

The FragmentRequest field and related fields contain data that is required to request a fragment from the server.

FragmentRequest (variable): The URI [RFC2616] of the fragment resource.

BitratePredicate (variable): The bit rate of the requested fragment.

CustomAttributesPredicate (variable): An attribute of the requested fragment that is used to disambiguate tracks.

CustomAttributesKey (variable): The name of the attribute that is specified in the CustomAttributesPredicate field.

CustomAttributesValue (variable): The value of the attribute that is specified in the CustomAttributesPredicate field.

FragmentsNoun (variable): The type of response that is expected by the client.

StreamName (variable): The name of the stream that contains the requested fragment.

Time (variable): The time of the requested fragment.

HLSPredicate (variable): An optional variable to request a fragment that is delivered with the HTTP Live Streaming protocol as specified in [IETFDRAFT-HLS] section 6.2.2.

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

  
 FragmentRequest = PresentationURI "/" QualityLevelsSegment "/" FragmentsSegment
                   ; PresentationURI is specified in section 2.2.1
 QualityLevelsSegment = QualityLevelsNoun "(" QualityLevelsPredicate ")"
 QualityLevelsNoun = "QualityLevels"
 QualityLevelsPredicate = BitratePredicate *( "," CustomAttributesPredicate )
 BitratePredicate = STRING-UINT32
 CustomAttributesPredicate = CustomAttributesKey "=" CustomAttributesValue
 CustomAttributesKey = URISAFE-IDENTIFIER-NONNUMERIC
 CustomAttributesValue = URISAFE-IDENTIFIER
 FragmentsSegment = FragmentsNoun "(" FragmentsPredicate ")"
 FragmentsNoun = FragmentsNounFullResponse
                 / FragmentsNounMetadataOnly
                 / FragmentsNounDataOnly
                 / FragmentsNounIndependentOnly
 FragmentsNounFullResponse = "Fragments"
 FragmentsNounMetadataOnly = "FragmentInfo"
 FragmentsNounDataOnly = "RawFragments"
 FragmentsNounIndependentOnly = "KeyFrames"
 FragmentsPredicate = StreamName "=" Time [ HLSPredicate ]
 StreamName = URISAFE-IDENTIFIER-NONNUMERIC
 Time = STRING-UINT64
 HLSPredicate = ", " "format=m3u8-aapl"