ProtectionCapabilities Class

Definition

Exposes Microsoft PlayReady digital rights management (DRM) capabilities for video decoding, video display, and video output protection subsystems used by the Windows Media Foundation pipeline under a XAML MediaElement or C++ Media Engine to a WinRT caller. The caller may use this information to select the most appropriate encoding of DRM’ed content for playback.

public ref class ProtectionCapabilities sealed
/// [Windows.Foundation.Metadata.ContractVersion(Windows.Foundation.UniversalApiContract, 131072)]
/// [Windows.Foundation.Metadata.MarshalingBehavior(Windows.Foundation.Metadata.MarshalingType.Agile)]
/// [Windows.Foundation.Metadata.Threading(Windows.Foundation.Metadata.ThreadingModel.Both)]
class ProtectionCapabilities final
/// [Windows.Foundation.Metadata.ContractVersion(Windows.Foundation.UniversalApiContract, 131072)]
/// [Windows.Foundation.Metadata.MarshalingBehavior(Windows.Foundation.Metadata.MarshalingType.Agile)]
/// [Windows.Foundation.Metadata.Threading(Windows.Foundation.Metadata.ThreadingModel.Both)]
/// [Windows.Foundation.Metadata.Activatable(196608, "Windows.Foundation.UniversalApiContract")]
class ProtectionCapabilities final
[Windows.Foundation.Metadata.ContractVersion(typeof(Windows.Foundation.UniversalApiContract), 131072)]
[Windows.Foundation.Metadata.MarshalingBehavior(Windows.Foundation.Metadata.MarshalingType.Agile)]
[Windows.Foundation.Metadata.Threading(Windows.Foundation.Metadata.ThreadingModel.Both)]
public sealed class ProtectionCapabilities
[Windows.Foundation.Metadata.ContractVersion(typeof(Windows.Foundation.UniversalApiContract), 131072)]
[Windows.Foundation.Metadata.MarshalingBehavior(Windows.Foundation.Metadata.MarshalingType.Agile)]
[Windows.Foundation.Metadata.Threading(Windows.Foundation.Metadata.ThreadingModel.Both)]
[Windows.Foundation.Metadata.Activatable(196608, "Windows.Foundation.UniversalApiContract")]
public sealed class ProtectionCapabilities
function ProtectionCapabilities()
Public NotInheritable Class ProtectionCapabilities
Inheritance
Object IInspectable ProtectionCapabilities
Attributes

Windows requirements

Device family
Windows 10 (introduced in 10.0.10586.0)
API contract
Windows.Foundation.UniversalApiContract (introduced in v2.0)

Remarks

Software DRM typically does not need this information, and may rely on MediaElement or Media Engine CanPlayType. Capabilities for hardware DRM may be a constrained subset of those for software DRM, and are controlled by Graphics IHVs’ hardware and firmware. For example, a specific graphics adapter’s decoder may be able to handle HEVC 10-bit video streams for software DRM and clear content, and not for hardware DRM. The capability queries are therefore targeted at responses for hardware DRM, although the class does support limited queries for software DRM.

Individual elements of queries for DRM capabilities are referred to as features. Each subsystem may have one or more features.PlayReady DRM is the only DRM system supported by this class. Software DRM refers to the PlayReady mode of operation where hardware-based content key management, content decryption, license policy enforcement, and video buffer protection are not required. Hardware DRM requires Graphics IHV hardware and firmware to enforce all of these parts of the content flow.

For hardware DRM, all of the video subystems must be GPU accelerated. For software DRM, all of the video subsystems may be, and typically are, GPU accelerated. This means that playback performance is not significantly different between them in the best case. Hardware DRM’s goal is to provide a higher level of content protection robustness than software DRM.

An HTML5/JavaScript UWP app relying on the HTML5 HTMLMediaElement must use the Encrypted Media Extensions (EME) MSMediaKeys.isTypeSupportedWithFeatures method instead of this WinRT API. Method input parameters and the 3-level response result are the same as for the IsTypeSupported method.

Constructors

ProtectionCapabilities()

Initializes a new instance of the ProtectionCapabilities class.

Methods

IsTypeSupported(String, String)

Queries features of video decoding, display, and output protection subsystems for DRM capabilities.

Warning

It is recommended that this method only be used with Windows 10, version 1607 or newer OS version, even though it is present on older versions of Windows 10.

Applies to