-
Notifications
You must be signed in to change notification settings - Fork 34
Description
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?