Skip to content

Add W3C Encrypted Media Extensions library and example Sparkle CDM/OpenCDM adapter plugin

Jordan Yelloz requested to merge jyelloz/gstreamer:eme-merge-request into main

This merge request includes a GStreamer library which maps to the W3C Encrypted Media Extensions API as well as an implementation of the EME API wrapping the Sparkle CDM library, allowing for an easier integration for CDMs that have already intergrated with it.

Interfaces

The GST EME library contains 3 interfaces:

GstMediaKeySystemAccess

GStreamer version of W3C MediaKeySystemAccess which is a provider for a GstMediaKeys instance.

GstMediaKeys

GStreamer version of W3C MediaKeys which maps to a specific instance of a content decryption module and will contain zero or more sessions.

GstMediaKeySession

GStreamer version of W3C MediaKeySession which represents a group of decryption keys referenced by some initialization data discovered within some media by a demuxer or supplied out-of-band by the application.

Utilities

The library also contains a significant amount of utility code to deal with packing/unpacking GstStructure contents associated with GstPromise, GstMessage, and GstContext objects that are encountered during interactions with the EME interfaces.

Merge request reports