Dela via


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.

en bild av mediesessionen i pmp-processen

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:

  1. Mediekällan måste implementera gränssnittet IMFPMPClient.
  2. Under topologimatchningen anropar mediasessionsproxyn metoden IMFPMPClient::SetPMPHost på mediekällan.
  3. 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.

en bild av en mediekälla i programprocessen.

Ett annat alternativ är att skapa mediekällan i PMP-sessionen.

  1. Ange attributet MF_SESSION_REMOTE_SOURCE_MODE när du skapar mediesessionen. Konfigurationsattribut anges i parametern pConfiguration för funktionen MFCreatePMPMediaSession.

  2. Anropa MFGetService på mediesessionen för att få en pekare till IMFPMPHost--gränssnittet. Tjänstidentifieraren är MF_PMP_SERVICE.

  3. 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.

  4. 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.

en bild av en mediekälla i pmp-processen.

Spela upp skyddade mediefiler

Media Session

sökväg för skyddade medier