dash: Store entire ContentProtection node in protection event data
authorPhilippe Normand <philn@igalia.com>
Mon, 12 Jul 2021 11:08:20 +0000 (12:08 +0100)
committerGStreamer Marge Bot <gitlab-merge-bot@gstreamer-foundation.org>
Thu, 15 Jul 2021 13:05:54 +0000 (13:05 +0000)
commitbc09d8cc6669a6d3403139fae38c5b34a094773b
tree49c8fef23b78e24b6a5f660980e3208e035bcf0b
parentff0e42eb30a5b9ebc31b57f06b1c78cd6a419002
dash: Store entire ContentProtection node in protection event data

Some manifests use the ContentProtection node to store additional information
such as the license server url. Our MPD parser used to process the
ContentProtection node, extracting Playready PSSH boxes. However for other DRM
systems, only the `value` attribute was passed down to the protection event, so
for example, Widevine data was not parsed at all and "Widevine" was passed to
the event, which is not very useful for decryptors that require a PSSH init
data.

Parsing should now be done by decryptors which will receive the entire
ContentProtection XML node as a string. This gives more "freedom" to the
decryptor which can then detect and parse custom nodes as well.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2400>
ext/dash/gstmpdparser.c
tests/check/elements/dash_mpd.c