Note: This blog is not intended for end users of an on-demand or live TV service. If you are an end user and have error 6030, you should contact the customer support of your video service provider (and mention this resolution).
If your answers are yes for both questions, this short blog may be for you.
If you are running PlayReady Server SDK Professional Edition, regardless whether your content is live or on-demand, all you need to do is to add the following PlayEnabler object with a specific technology GUID into your license server handler code:
//HD or SD
objPlayEnabler = new PlayEnabler(new Guid("786627D8-C2A6-44BE-8F88-08AE255B01A7"));
// objPlayEnabler = new PlayEnabler(new Guid(new Guid("B621D91F-EDCC-4035-8D4B-DC71760D43E9"));
where playright is an instance of PlayRight class which should already be present in your license server handler code. Yes, basically, the PlayEnabler is added into the PlayRight and the PlayRight is added into MediaLicense.
If you are using live TV scalable license feature in PlayReady Server SDK Premim Edition, you should add the same PlayEnabler object, but in your Root License Server code. There is no need to change your leaf license server code.
After this code change, PlayReady licenses will contain the Play Enabler technology GUID and 6030 issue should be resolved.
This resolution works with both persistent and non-persistent licenses on PlayReady Server SDK v 2.1, v 2.0 and v 1.5.2.
This is not a bug, rather it is a change since Silverlight 5.1. The best way to understand the details and reasons for this change is to read the new Microsoft PlayReady compliance rules published here (http://download.microsoft.com/download/9/B/A/9BAB8317-611E-44DD-9558-48A88B2EB77F/Compliance_Rules_for_PlayReady_Final_Products_15_Mar_2012.doc). The related content is on page 18-19, Section 3.8 Output Control for Unknown Outputs.
One common quesiton is: does adding PlayEnabler bypass any Output Protection restriction?
As you can see, adding PlayEnabler is actually accepting “best effort” treatment for unknown connectors. Not adding PlayEnabler is actually enforcingOutput Protection for unknown connectors, which is the default behavior in Silverlight 5.1.