Much of what a manifest says about content is carried in descriptors: elements with a
schemeIdUri naming a scheme and a value whose meaning the
scheme defines. New schemes can be added without changing the schema. DASH-IF keeps a
public registry of them.
Descriptor elements
Every descriptor has schemeIdUri (required), value and
id.
| Element | On | Meaning |
|---|---|---|
EssentialProperty | MPD, adaptation set, representation and others | A property the player must understand: if it does not know the scheme, it must ignore the element that carries it. |
SupplementalProperty | as above, and period | Extra information a player may use or ignore. |
Role | adaptation set, content component, preselection | What the content is for (below). |
Accessibility | the same | Accessibility features, such as captions in the video stream. |
Rating | the same | A content rating. |
Viewpoint | the same | A camera angle or viewpoint. |
AudioChannelConfiguration | common elements | The audio channel layout (below). |
FramePacking | common elements | How stereoscopic 3D frames are packed. |
ContentProtection | MPD, period, common elements | A protection system (below). |
OutputProtection | common elements, at most one | Output protection needed, such as HDCP. |
AssetIdentifier | period | Identifies the content of the period, so periods from one asset can be joined. |
UTCTiming | MPD | Where to get the time; see MPD element. |
Reporting | in Metrics | How metrics are reported. |
Scope | in ServiceDescription | Which players a service description is for. |
Roles
The scheme urn:mpeg:dash:role:2011 is the usual one, for
Role and also for Accessibility. Its first values were:
| Value | Meaning |
|---|---|
main | The main content |
alternate | An alternative to the main content, such as another camera angle |
supplementary | Extra content to go with the main content |
commentary | A commentary |
dub | Dubbed audio in another language |
caption | Captions for the deaf and hard of hearing |
subtitle | Subtitles, a translation of the dialogue |
Later editions add more. Industry specifications that follow them use, among
others, description (audio description),
enhanced-audio-intelligibility, emergency and
karaoke; the full current list is in the standard itself. For CEA-608 captions carried inside the video,
Accessibility uses urn:scte:dash:cc:cea-608:2015, with a
value listing the caption channels and their languages. The scheme
urn:mpeg:dash:stereoid:2011, used with Role, marks the left
(l0…) and right (r0…) views of stereo pairs.
Audio and video schemes
| Scheme | Value |
|---|---|
urn:mpeg:mpegB:cicp:ChannelConfiguration | A CICP channel configuration number (ISO/IEC 23091-3), such as 2 for stereo or 6 for 5.1. Preferred for all codecs. |
urn:mpeg:dash:23003:3:audio_channel_configuration:2011 | A channel configuration index from ISO/IEC 23003-3 |
tag:dolby.com,2014:dash:audio_channel_configuration:2011 | A 16-bit Dolby channel mask, four hexadecimal digits (legacy) |
tag:dolby.com,2015:dash:audio_channel_configuration:2015 | A 24-bit Dolby channel mask, six hexadecimal digits (legacy) |
tag:dts.com,2014:dash:audio_channel_configuration:2012 | The number of DTS output channels, 1 to 32 (legacy) |
tag:dts.com,2018:uhd:audio_channel_configuration | A DTS-UHD channel mask in hexadecimal (legacy) |
urn:mpeg:mpegB:cicp:ProgramLoudness, …:AnchorLoudness, …:OutputChannelPosition | Loudness in LKFS, and loudspeaker positions, as properties |
tag:dolby.com,2018:dash:EC3_ExtensionType:2018 | JOC: Enhanced AC-3 with joint object coding (Dolby Atmos) |
urn:mpeg:mpegB:cicp:ColourPrimaries, …:TransferCharacteristics, …:MatrixCoefficients, …:VideoFullRangeFlag | CICP colour numbers, as properties; transfer characteristics 16 means PQ (HDR10) and 18 means HLG |
urn:mpeg:dash:14496:10:frame_packing_arrangement_type:2011, urn:mpeg:mpegB:cicp:VideoFramePackingType | Frame packing of stereoscopic video, for FramePacking |
Content protection
ContentProtection adds robustness, refId and
ref (so one full descriptor can be referred to from elsewhere) to the
descriptor attributes. It usually appears twice or more: once with
urn:mpeg:dash:mp4protection:2011 and the value cenc or
cbcs (the Common Encryption scheme) and a cenc:default_KID
attribute, and once for each DRM system, as urn:uuid: and the system’s ID,
often with a cenc:pssh child holding its initialisation data in
Base64.
| System ID | System |
|---|---|
edef8ba9-79d6-4ace-a3c8-27dcd51d21ed | Widevine |
9a04f079-9840-4286-ab92-e65be0885f95 | Microsoft PlayReady |
94ce86fb-07ff-4f43-adb8-93d2fa968ca2 | Apple FairPlay |
e2719d58-a985-b3c9-781a-b030af78d30e | Clear Key (DASH-IF) |
1077efec-c0b2-4d02-ace3-3c1e52e2fb4b | W3C common PSSH box |
5e629af5-38da-4063-8977-97ffbd9902d4 | Marlin |
9a27dd82-fde2-4725-8cbc-4234aa06ec09 | Verimatrix VCAS |
80a6be7e-1448-4c37-9e70-d5aebe04c8d2 | Irdeto |
adb41c24-2dbf-4a6d-958b-4457c0d27b95 | Nagra MediaAccess PRM 3.0 |
a68129d3-575b-4f1a-9cba-3223846cf7c3 | Synamedia VideoGuard |
3d5e6d35-9b9a-41e8-b843-dd3c6e72c42c | ChinaDRM |
The DASH-IF registry lists about thirty systems in all; the table gives the common
ones. For MPEG-2 transport stream representations, the scheme
urn:mpeg:dash:13818:1:CA_descriptor:2011 names a conditional access
system.
Other common elements
| Element | Attributes | Meaning |
|---|---|---|
Label, GroupLabel | id (default 0), lang; text content | A name for menus. A group label names a group of sets. |
Switching | interval (required), type: media (default) or bitstream | How often a player can switch into this representation, and how. |
RandomAccess | interval (required), type: closed (default), open or gradual; minBufferTime, bandwidth | Where playback can start, and the kind of GOP at those points. |
Resync | type (SAP type, default 0), dT, dImax, dImin (default 0), marker (default false) | Points inside segments where a player can resynchronise, for low latency. |
ProducerReferenceTime | id (required), inband (default false), type: encoder (default), captured or application; applicationScheme, wallClockTime (required), presentationTime (required); a UTCTiming child | Pairs a media time with the wall-clock time it was encoded or captured, so a player can measure its latency. |
ContentPopularityRate | source (content, statistics or other; required), source_description; PR children with popularityRate (1 to 100), start, r | How popular parts of the content are, so caches can prepare. |
SegmentSequenceProperties | sapType (default 0), cadence (default 1), event (default true), alignment | Properties of segment sequences (sixth edition). |
InbandEventStream | as EventStream | Events carried inside the segments; see Events. |
Worked example
<AdaptationSet contentType="audio" lang="fr" mimeType="audio/mp4"
xmlns:cenc="urn:mpeg:cenc:2013">
<ContentProtection schemeIdUri="urn:mpeg:dash:mp4protection:2011" value="cenc"
cenc:default_KID="34e5db32-8625-47cd-ba06-68fca0655a72"/>
<ContentProtection schemeIdUri="urn:uuid:edef8ba9-79d6-4ace-a3c8-27dcd51d21ed">
<cenc:pssh>AAAAW3Bzc2gAAAAA7e+LqXnWSs6jyCfc1R0h7Q…</cenc:pssh>
</ContentProtection>
<Role schemeIdUri="urn:mpeg:dash:role:2011" value="dub"/>
<AudioChannelConfiguration schemeIdUri="urn:mpeg:mpegB:cicp:ChannelConfiguration" value="6"/>
…
</AdaptationSet>
cenc scheme, with
Widevine data. The Base64 of the pssh box shows its type,
pssh, and then the Widevine system ID
ED EF 8B A9 ….