StreamTest

DRM system supplies no inline initialization data

Without a <cenc:pssh> in the manifest, playback depends on init data some players will not look for.

What it means

A ContentProtection element names a real DRM system but carries no inline pssh box. The data may still be present inside the init segment.

Why it matters

Some players read initialization data only from the manifest and never parse the init segment for it. On those, licence acquisition never begins and playback fails on protected content while working fine on others — a device-specific bug that is hard to reproduce.

How to fix it

  1. Add a <cenc:pssh> child to each ContentProtection element with the base64 pssh box for that system.
  2. Declare the cenc namespace on <MPD>: xmlns:cenc="urn:mpeg:cenc:2013".
  3. Include @cenc:default_KID so players know which key to request.

Check your own stream

The free DASH validator runs this check on every analysis and links each finding straight back here.

Open the DASH validator →

Frequently asked questions

What does "DRM system supplies no inline initialization data" mean?
A ContentProtection element names a real DRM system but carries no inline pssh box. The data may still be present inside the init segment.
Why does it matter?
Some players read initialization data only from the manifest and never parse the init segment for it. On those, licence acquisition never begins and playback fails on protected content while working fine on others — a device-specific bug that is hard to reproduce.
How do I fix it?
1. Add a <cenc:pssh> child to each ContentProtection element with the base64 pssh box for that system. 2. Declare the cenc namespace on <MPD>: xmlns:cenc="urn:mpeg:cenc:2013". 3. Include @cenc:default_KID so players know which key to request.
Can a validator catch this before viewers do?
Yes. The free DASH MPD validator checks this on every run, together with UTCTiming, clock drift and segment addressing — the live problems that only appear on other people's devices.
What is the first thing to try?
Add a <cenc:pssh> child to each ContentProtection element with the base64 pssh box for that system.

Related DASH checks