Session multimédia PMP

Une application peut créer la session multimédia dans un processus distinct appelé processus PMP (Protected Media Path ). L’objectif main du processus PMP est d’activer la lecture de contenu protégé à l’aide de la gestion des droits numériques (DRM). Par défaut, le processus PMP est créé à l’intérieur d’un environnement protégé (PE). Seuls les composants signés approuvés peuvent être chargés à l’intérieur d’un pe. Un avantage secondaire du processus PMP est qu’il isole le processus d’application du pipeline multimédia. Pour plus d’informations sur le processus PMP, consultez Chemin du média protégé.

Pour créer la session multimédia à l’intérieur du processus PMP, appelez la fonction MFCreatePMPMediaSession . Si vous le souhaitez, vous pouvez passer l’indicateur MFPMPSESSION_UNPROTECTED_PROCESS . Si cet indicateur est défini, le processus PMP est créé à l’intérieur d’un processus non protégé, et non d’un processus PE. Le processus non protégé ne peut pas être utilisé pour la lecture DRM, mais vous offre les avantages de l’isolation des processus.

La fonction MFCreatePMPMediaSession retourne un pointeur vers un objet proxy pour la session multimédia. L’application communique avec la session multimédia via le proxy.

une illustration de la session multimédia à l’intérieur du processus pmp

Par défaut, lorsque l’application crée une topologie, la source du média est créée à l’intérieur du processus d’application. Un proxy vers la source multimédia est créé à l’intérieur du processus PMP. La source multimédia peut créer des objets à l’intérieur du processus PMP à l’aide de l’interface IMFPMPHost . Par exemple, pour prendre en charge drm, une source multimédia crée un objet appelé autorité d’approbation d’entrée (ITA). L’ITA doit être créé à l’intérieur du processus PMP. (Pour plus d’informations sur les itAs, consultez Chemin du média protégé.) Pour utiliser l’interface IMFPMPHost , procédez comme suit :

  1. La source multimédia doit implémenter l’interface IMFPMPClient .
  2. Pendant la résolution de la topologie, le proxy Media Session appelle la méthode IMFPMPClient::SetPMPHost sur la source multimédia.
  3. La source multimédia appelle IMFPMPHost::CreateObjectByCLSID pour créer l’objet à l’intérieur du processus PMP. L’objet doit avoir un CLSID inscrit. En outre, pour être chargé à l’intérieur du pe, l’objet doit être approuvé et signé numériquement. Pour plus d’informations sur la signature de code des composants multimédias protégés, consultez le livre blanc Signature de code pour les composants multimédias protégés dans Windows Vista

L’illustration suivante montre la source de média créée dans le processus d’application.

illustration d’une source multimédia dans le processus d’application.

Une autre alternative consiste à créer la source multimédia à l’intérieur de la session PMP.

  1. Définissez l’attribut MF_SESSION_REMOTE_SOURCE_MODE lorsque vous créez la session multimédia. Les attributs de configuration sont spécifiés dans le paramètre pConfiguration de la fonction MFCreatePMPMediaSession .

  2. Appelez MFGetService sur la session multimédia pour obtenir un pointeur vers l’interface IMFPMPHost . L’identificateur de service est MF_PMP_SERVICE.

  3. Appelez IMFPMPHost::CreateObjectByCLSID avec l’identificateur de classe CLSID_MFSourceResolver pour créer le programme de résolution source à l’intérieur du processus PMP. La méthode retourne un pointeur vers un proxy pour le programme de résolution source.

  4. Appelez IMFSourceResolver::BeginCreateObjectFromURL ou IMFSourceResolver::BeginCreateObjectFromByteStream pour créer la source multimédia.

    Notes

    Dans ce cas, vous devez utiliser les versions asynchrones de ces méthodes, car les versions synchrones ne sont pas accessibles à distance.

     

L’illustration suivante montre la source de média créée dans le processus PMP.

illustration d’une source multimédia dans le processus pmp.

Comment lire des fichiers multimédias protégés

Session multimédia

Chemin d’accès du média protégé