Reputation: 103
I am working in C# Windows Forms, and would like to ensure that the content on my form is only output through an HDCP compliant stream using the system's hardware. This would require a multi-step process. A high level block-diagram description of the process would be:
If any of these stages report failure, it is then a trivial matter to black out the form.
I have done a minor amount of research into this manner, but cannot seem to find any detailed examples, leads, or instructions for accomplishing this. I have so far looked into using DirectX and Windows OPM, but have found insufficient help. The Windows PlayReady license also seems to touch up on this issue, but appears to be for pre-encrypted content (and is also quite expensive). Perhaps there is an approach that I have not noticed or thought about?
If you need any other information, please let me know.
Thank you in advance.
Upvotes: 8
Views: 2769
Reputation: 1249
HDCP is nice to have but very hard to implement. Even if you have such a product on the market which does exactly what you want, it won't be certified by HDCP becuase it is easy to hack it. Most of the time, HDCP related things, for example the ROM where you store the HDCP keys, are hardware protected and can never be read out when your product is on the market. Sometimes you even need to hide the hardware paths from one component to another one to protect sniffing out your HDCP de-crypted data, for example, from between the graphics card chip and the HDMI connector.
To answer your question, you can only detect if the display supports HDCP or not if you can somehow read the EDID of the display. I don't think that you can do it using existing tools in windows. I might be wrong though.
Upvotes: 1