Skip to content

A Gstreamer decryptor, with an implementation for OCDM.

License

Notifications You must be signed in to change notification settings

WebPlatformForEmbedded/gstcencdecryptor

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

42 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Common encryption multimedia decryptor

Plugin used for integrating OpenCDM's decryption capabilities into gstreamer.

Dependencies

In order to build and succesfully run the plugin, you'll need the following:

  • Gstreamer > 1.10,
  • CURL > 7.61,
  • DRM library (widevine, playready),
  • RDKServices (OpenCDM), ThunderClientLibraries (ocdm) - if you decide to use the ocdm implementation.

Building

There are already premade build recipes for Yocto and Buildroot, that will allow you to integrate this package onto your platform.

When building in a different environment, rules for a normal cmake package apply. If you're extending the IGstDecryptor.h interface, make sure to set the cmake flag GSTCENCDECRYPT_IMPLEMENTATION, to an approriate value.

Capabilities

This application is meant to be a convenience tool, that helps you with debugging encrypted stream issues outside of a browser environment. It has fixed capabilities of processing application/x-cenc and application/x-webm-enc assets that contain streams of the following types. It'll handle GstCaps negotiation and in-place transformation of the incoming GstBuffer structures.

Since there's no application layer that provides a license URL for the content, you'll have to set it yourself via the OVERRIDE_LA_URL environment variable.

Test content

Depending on the keysystem, there are two reliable sources for encrypted assets:

You can also create your own encrypted sample files, using tools like shaka-packager.

Quirks

The application/x-webm-enc samples do not have specific keysystem information attached to them. Due to this, Widevine will be selected as the preferable option for webm files. You can override this behavior by setting the OVERRIDE_WEBM_KEYSYSTEM_UUID environment variable.