2.2.2.1 SmoothStreamingMedia
The SmoothStreamingMedia field and related fields encapsulate metadata that is required to play the presentation.
SmoothStreamingMedia (variable): An XML element that encapsulates all metadata that is required by the client to play back the presentation.
SmoothStreamingMediaAttributes (variable): The collection of XML attributes for the SmoothStreamingMedia element. Attributes can appear in any order. However, the following fields are required and MUST be present in SmoothStreamingMediaAttributes: MajorVersionAttribute, MinorVersionAttribute, and DurationAttribute.
MajorVersion (variable): The major version of the Manifest Response message. MUST be set to 2.
MinorVersion (variable): The minor version of the Manifest Response message. MUST be set to 0 or 2.
TimeScale (variable): The timescale of the Duration attribute, specified as the number of increments in 1 second. The default value is 10000000.
Duration (variable): The duration of the presentation, specified as the number of time increments indicated by the value of the TimeScale field.
IsLive (variable): Specifies the presentation type. If this field contains a TRUE value, it specifies that the presentation is a live presentation. Otherwise, the presentation is an on-demand presentation.
LookaheadCount (variable): Specifies the size of the server buffer, as an integer number of fragments. This field MUST be omitted for on-demand presentations.
DVRWindowLength (variable): The length of the DVR window, specified as the number of time increments indicated by the value of the TimeScale field. If this field is omitted for a live presentation or set to 0, the DVR window is effectively infinite. This field MUST be omitted for on-demand presentations.
The syntax of the fields that are defined in this section, specified in ABNF [RFC5234], is as follows.
-
SmoothStreamingMedia = "<" SmoothStreamingMediaElementName S SmoothStreamingMediaAttributes S ">" S SmoothStreamingMediaContent *1S "</" SmoothStreamingMediaElementName ">" SmoothStreamingMediaElementName = "SmoothStreamingMedia" SmoothStreamingMediaAttributes = *( MajorVersionAttribute / MinorVersionAttribute / TimeScaleAttribute / DurationAttribute / IsLiveAttribute / LookaheadCountAttribute / DVRWindowLengthAttribute / VendorExtensionAttribute ) MajorVersionAttribute = S MajorVersionAttributeName S Eq S (DQ MajorVersion DQ) / (SQ MajorVersion SQ) *1S MajorVersionAttributeName = "MajorVersion" MajorVersion = "2" MinorVersionAttribute = S MinorVersionAttributeName S Eq S (DQ MinorVersion DQ) / (SQ MinorVersion SQ) *1S MinorVersionAttributeName = "MinorVersion" MinorVersion = "0" / "2" TimeScaleAttribute = S TimeScaleAttributeName S Eq S (DQ TimeScale DQ) / (SQ TimeScale SQ) *1S TimeScaleAttributeName = "TimeScale" TimeScale = STRING-UINT64 DurationAttribute = S DurationAttributeName S Eq S (DQ Duration DQ) / (SQ Duration SQ) *1S DurationAttributeName = "Duration" Duration = STRING-UINT64 IsLiveAttribute = S IsLiveAttributeName S Eq S (DQ IsLive DQ) / (SQ IsLive SQ) *1S IsLiveAttributeName = "IsLive" IsLive = TRUE / FALSE LookaheadCountAttribute = S LookaheadCountAttributeName S Eq S (DQ LookaheadCount DQ) / (SQ LookaheadCount SQ) *1S LookaheadCountAttributeName = "LookaheadCount" LookaheadCount = STRING-UINT32 DVRWindowLengthAttribute = S DVRWindowLengthAttributeName S Eq S (DQ DVRWindowLength DQ) / (SQ DVRWindowLength SQ) *1S DVRWindowLengthAttributeName = "DVRWindowLength" DVRWindowLength= STRING-UINT64 SmoothStreamingMediaContent = [ ProtectionElement *1S] 1*StreamElement