I am looking into extending MediaEngineDCompWin32Sample application to enable it play PlayReady content. Given that playback asset in #60 is fixed the application starts the playback.
I would like to enable it to also play PlayReady protected content (and then playready content coming from our source).
To define a simple initial case I would like to play asset from MediaEngineEMEUWPSample which also plays well there. Apparently there should be some PMP reference involved, discussion about something related I found in #37.
There is a discussion about IMFContentDecryptionModule::SetPMPHostApp for which I would need IMFContentDecryptionModule and it seems I have a problem even getting this. The initialization copy from MediaEngineEMEUWPSample starting from IMFContentDecryptionModuleFactory4::CreateContentDecryptionModuleFactory gives me type supported, and then fails at IMFContentDecryptionModuleAccess->CreateContentDecryptionModule so that I can't even have a CDM pointer:
0xC00D36BA : 'The object does not support the specified service.'.
Even though the arguments are the asme as in UWP EME
// This is equivalent to the following Javascript EME call:
// Navigator.requestMediaKeySystemAccess("com.microsoft.playready.recommendation", [{ initDataTypes: ['cenc'], persistentState: 'optional', distinctiveIdentifier: 'required'])
From the MF Media Engine end, execution reaches Windows::Media::Protection::IMediaProtectionManager::Properties() call where I seem to need to pass properties obtained from CDM and I don't have it.
If I use C++/WinRT defined MediaProtectionManager instead with properties borrowed from UWP PlayReady sample, this does not work either because, as I assume, the application is outside of UWP and requires additional steps.
Could you please give some guidance how to connect the pieces together?
I am looking into extending
MediaEngineDCompWin32Sampleapplication to enable it play PlayReady content. Given that playback asset in #60 is fixed the application starts the playback.I would like to enable it to also play PlayReady protected content (and then playready content coming from our source).
To define a simple initial case I would like to play asset from
MediaEngineEMEUWPSamplewhich also plays well there. Apparently there should be some PMP reference involved, discussion about something related I found in #37.There is a discussion about
IMFContentDecryptionModule::SetPMPHostAppfor which I would needIMFContentDecryptionModuleand it seems I have a problem even getting this. The initialization copy fromMediaEngineEMEUWPSamplestarting fromIMFContentDecryptionModuleFactory4::CreateContentDecryptionModuleFactorygives me type supported, and then fails atIMFContentDecryptionModuleAccess->CreateContentDecryptionModuleso that I can't even have a CDM pointer:Even though the arguments are the asme as in UWP EME
From the MF Media Engine end, execution reaches
Windows::Media::Protection::IMediaProtectionManager::Properties()call where I seem to need to pass properties obtained from CDM and I don't have it.If I use C++/WinRT defined
MediaProtectionManagerinstead with properties borrowed from UWP PlayReady sample, this does not work either because, as I assume, the application is outside of UWP and requires additional steps.Could you please give some guidance how to connect the pieces together?