How to turn on HDCP or SCMS in an audio playback app


This blog post has moved to https://matthewvaneerde.wordpress.com/2009/11/10/how-to-turn-on-hdcp-or-scms-in-an-audio-playback-app/

Comments (1)

  1. Some common errors and what they mean:

    — ERROR — IMFTrustedOutput::GetOutputTrustAuthority(0) failed: hr = 0x80070057

    That’s E_INVALIDARG, there.  That usually means that the audio device wasn’t playing anything at the time the GetOutputTrustAuthority call was made.  Double-check that you’re playing audio, and over the right device.  WMP’s "repeat" feature is very handy here.  You can also configure WMP to play over a specific audio device rather than the default.

    — ERROR — IMFOutputTrustAuthority::SetPolicy failed: hr = 0x80000071

    That’s a DRM authentication failure.  Either there’s a kernel debugger attached, or driver verifier is turned on, or a driver binary doesn’t match its signature in its .cat file, or the .cat file doesn’t have a DRMLevel signature, or the DRMLevel you asked for in the output policy (1300, say) exceeds the DRMLevel that the .cat file is signed for (1200, say), or the driver is test-signed and your output policy doesn’t allow for test-signed drivers.  Double-check the .cat file against the output policy you’re requesting.

    — ERROR — IMFOutputTrustAuthority::SetPolicy failed: hr = 0xc00000bb

    That’s a status code coming from the driver – in particular, this is STATUS_NOT_SUPPORTED.  This usually means that you asked for CopyOK to be 0 and DigitalOutputDisable to be 0, but the driver or device doesn’t support HDCP or turning on the status bits.  For an HDMI device, look in the Sound control panel on the Supported Formats tab for the device in question and see if "HDCP: Supported" is set.

Skip to main content