Skip to content

MediaEngineDCompWin32Sample for PlayReady content // AV in IMFContentDecryptionModuleSession::GenerateRequest call #61

@roman380

Description

@roman380

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?

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions