Service Description Add

You can activate this plugin with the string manifest_edit.plugins.mpd.service_description_add.

This plugin will add one or more Service Description elements to the manifest (see ISO23009-1 standard (fourth edition) Table 3 and Annex K, in the MPD "root" element.

The plugin supports only a partial subset of the specification. In particular, with reference to Annex K of the standard, the following Service Description attributes/elements are not supported and cannot be added to a manifest with this plugin:

  • OperatingQuality (Table K.5)
  • OperatingBandwidth (Table K.5)
  • QualityLatency (Table K.6)
  • @type (Table K.6)

Service Description configuration

The Service Description configuration file follows the following general syntax:

mpd:
- manifest_edit.plugins.mpd.service_description_add:
    - <Service Description config>
    - <Service Description config>
    [...]

where <Service Description config> is

id: <string>
Scope:
  - schemeIdUri: <string>
    value: <string>
    id: <string>
Latency:
  min: <positive integer>
  max: <positive integer>
  target: <positive integer>
  reference_id: <positive integer>
PlaybackRate:
  - min: <real string>
    max: <real string>

The only mandatory element in the above description is Scope, for which at least the schemeIdUri element must be provided. All the other elements are optional and can be commented or removed if not needed.

Notice that in the above configuration, it is possible to specify multiple Scope and PlaybackRate elements. Support for multiple Latency elements is for the moment not present.

  • <string> must be provided within single quotation marks, e.g. 'my value'.
  • <positive integer> must be a positive integer number, e.g. 1000
  • <real string> must be provided within single quotation marks. The string must be a legal representation of a 'Real' value, as specified by DVB-DASH (Optional leading minus sign, followed by a decimal string, optionally followed by a decimal point '.' and further digits), e.g., '12' or '-654.32'.

Here is an example for a Service Description element configuration as used in the Low Latency use case:

mpd:
- manifest_edit.plugins.mpd.service_description_add:
    - id: '1'
      Scope:
        - schemeIdUri: "urn:dvb:dash:lowlatency:scope:2019"
      Latency:
        min: 1500
        max: 6000
        target: 3000
      PlaybackRate:
        - min: '0.5'
          max: '1.5'

Note

A notable use case making use of this plugin is Low Latency, coupling this and the Supplemental Property plugin to add Low Latency signaling to a manifest.