Add W3C Encrypted Media Extensions library and example Sparkle CDM/OpenCDM adapter plugin
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.