basedrm: a base class based on CENC common encryption scheme for DRM playback
Submitted by Rajesh
Link to original bug (#761700)
Description
Created attachment 320610
basedrm patch
short_description: Base class for DRM using ISOBMFF CENC common encryption and 'piff' (PSSH box)
Common encryption (CENC) in ISO base media file format files (ISOBMFF) ISO/IEC 23001-7 standard
Common encryption (CENC) of MPEG-2 transport streams (MPEG-2 TS) ISO/IEC 23001-9 standard
This basedrm class does license management and other common activities to enable DRM management systems to decrypt the encrypted audio / video samples.
The subclass is responsible for providing pad template caps for
source and sink pads. The pads need to be named "sink" and "src".
DRM subsystem should do in place decryption so that input and output buffer are same.
gstbasedrm class will not implement any default methods therefore all necessary methods required for DRM management should be implemented by derived class.
We have developed and tested this plugin in STMicroelectronics for DRM playback on our HW platform. This class has been tested on STB platform using latest gstreamer baseline for DASH / MSS and HLS streaming playback of PlayReady protected data. gstreamer patches for CENC support in gstreamer for MSS and HLS (in mpegts ) have been developed in ST for CENC encrypted PlayReady streams.
This BaseDRM class has also been tested using clear key DRM in native gstreamer with CENC encrypted DASH streams with clearkey mechanism.
Patch 320610, "basedrm patch":
0001-basedrm-base-drm-class-based-on-CENC-common-encrypti.patch