PMP Media Session
Ett program kan skapa Media Session i en separat process som kallas PMP-process (Protected Media Path). Huvudsyftet med PMP-processen är att aktivera uppspelning av skyddat innehåll med hjälp av DIGITAL Rights Management (DRM). Som standard skapas PMP-processen i en skyddad miljö (PE). Endast betrodda, signerade komponenter kan läsas in i en PE. En sekundär fördel med PMP-processen är att den isolerar programprocessen från mediepipelinen. Mer information om PMP-processen finns i Skyddad mediesökväg.
Om du vill skapa mediesessionen i PMP-processen anropar du funktionen MFCreatePMPMediaSession. Du kan också skicka in flaggan MFPMPSESSION_UNPROTECTED_PROCESS. Om den här flaggan anges skapas PMP-processen i en oskyddad process och inte en PE-process. Den oskyddade processen kan inte användas för DRM-uppspelning, men ger dig fördelarna med processisolering.
Funktionen MFCreatePMPMediaSession returnerar en pekare till ett proxyobjekt för mediesessionen. Programmet kommunicerar med mediasessionen via proxyn.
När programmet skapar en topologi skapas mediekällan som standard i programprocessen. En proxy till mediekällan skapas i PMP-processen. Mediekällan kan skapa objekt i PMP-processen med hjälp av IMFPMPHost--gränssnittet. För att till exempel stödja DRM skapar en mediekälla ett objekt som kallas indataförtroendeutfärdare (ITA). ITA måste skapas i PMP-processen. (Mer information om ITA finns i Sökväg för skyddade medier.) Om du vill använda IMFPMPHost--gränssnittet gör du följande:
- Mediekällan måste implementera gränssnittet IMFPMPClient.
- Under topologimatchningen anropar mediasessionsproxyn metoden IMFPMPClient::SetPMPHost på mediekällan.
- Mediekällan anropar IMFPMPHost::CreateObjectByCLSID för att skapa objektet i PMP-processen. Objektet måste ha ett registrerat CLSID. Om du vill läsa in i PE måste objektet också vara betrott och digitalt signerat. Information om komponenter för kodsignering av skyddade media finns i vitboken Kodsignering för skyddade mediekomponenter i Windows Vista
Följande bild visar mediekällan som skapades i programprocessen.
Ett annat alternativ är att skapa mediekällan i PMP-sessionen.
Ange attributet MF_SESSION_REMOTE_SOURCE_MODE när du skapar mediesessionen. Konfigurationsattribut anges i parametern pConfiguration för funktionen MFCreatePMPMediaSession.
Anropa MFGetService på mediesessionen för att få en pekare till IMFPMPHost--gränssnittet. Tjänstidentifieraren är MF_PMP_SERVICE.
Anropa IMFPMPHost::CreateObjectByCLSID med klassidentifieraren CLSID_MFSourceResolver för att skapa källlösaren i PMP-processen. Metoden returnerar en pekare till en proxy för källlösaren.
Anropa IMFSourceResolver::BeginCreateObjectFromURL eller IMFSourceResolver::BeginCreateObjectFromByteStream för att skapa mediekällan.
Not
I det här fallet måste du använda de asynkrona versionerna av dessa metoder, eftersom de synkrona versionerna inte är fjärrkommunikationsbara.
Följande bild visar mediekällan som skapades i PMP-processen.
Relaterade ämnen