次の方法で共有


PMP メディア セッション

アプリケーションは、保護されたメディア パス (PMP) プロセスと呼ばれる別のプロセスでメディア セッションを作成できます。 PMP プロセスのメイン目的は、デジタル著作権管理 (DRM) を使用して保護されたコンテンツの再生を有効にすることです。 既定では、PMP プロセスは保護された環境 (PE) 内に作成されます。 PE 内に読み込むことができるのは、信頼された署名付きコンポーネントのみです。 PMP プロセスの 2 番目の利点は、アプリケーション プロセスをメディア パイプラインから分離することです。 PMP プロセスの詳細については、「 保護されたメディア パス」を参照してください。

PMP プロセス内にメディア セッションを作成するには、 MFCreatePMPMediaSession 関数を呼び出します。 必要に応じて、 MFPMPSESSION_UNPROTECTED_PROCESS フラグを渡すことができます。 このフラグを設定すると、保護されていないプロセス内に PMP プロセスが作成され、PE プロセスは作成されません。 保護されていないプロセスは DRM 再生には使用できませんが、プロセス分離の利点があります。

MFCreatePMPMediaSession 関数は、メディア セッションのプロキシ オブジェクトへのポインターを返します。 アプリケーションは、プロキシを介してメディア セッションと通信します。

pmp プロセス内のメディア セッションの図

既定では、アプリケーションがトポロジを作成すると、アプリケーション プロセス内にメディア ソースが作成されます。 メディア ソースへのプロキシは、PMP プロセス内に作成されます。 メディア ソースは、 IMFPMPHost インターフェイスを使用して PMP プロセス内にオブジェクトを作成できます。 たとえば、DRM をサポートするために、メディア ソースは 、入力信頼機関 (ITA) と呼ばれるオブジェクトを作成します。 ITA は PMP プロセス内に作成する必要があります。 (ITA の詳細については、「 保護されたメディア パス」を参照してください)。 IMFPMPHost インターフェイスを使用するには、次の操作を行います。

  1. メディア ソースは 、IMFPMPClient インターフェイスを実装する必要があります。
  2. トポロジの解決中に、メディア セッション プロキシはメディア ソースの IMFPMPClient::SetPMPHost メソッドを呼び出します。
  3. メディア ソースは IMFPMPHost::CreateObjectByCLSID を呼び出して、PMP プロセス内にオブジェクトを作成します。 オブジェクトには、CLSID が登録されている必要があります。 また、PE 内で読み込むには、オブジェクトが信頼され、デジタル署名されている必要があります。 コード署名の保護されたメディア コンポーネントの詳細については、Windows Vista の保護されたメディア コンポーネントのコード署名に関するホワイト ペーパーを参照してください。

次の図は、アプリケーション プロセスで作成されたメディア ソースを示しています。

アプリケーション プロセスのメディア ソースの図。

もう 1 つの方法は、PMP セッション内にメディア ソースを作成することです。

  1. メディア セッションを作成するときに 、MF_SESSION_REMOTE_SOURCE_MODE 属性を設定します。 構成属性は、MFCreatePMPMediaSession 関数の pConfiguration パラメーターで指定します。

  2. メディア セッションで MFGetService を呼び出して、 IMFPMPHost インターフェイスへのポインターを取得します。 サービス識別子が MF_PMP_SERVICE

  3. クラス識別子CLSID_MFSourceResolverを使用して IMFPMPHost::CreateObjectByCLSID を呼び出して、PMP プロセス内にソース リゾルバーを作成します。 メソッドは、ソース リゾルバーのプロキシへのポインターを返します。

  4. メディア ソースを作成するには、 IMFSourceResolver::BeginCreateObjectFromURL または IMFSourceResolver::BeginCreateObjectFromByteStream を呼び出します。

    Note

    この場合、同期バージョンはリモート可能ではないので、これらのメソッドの非同期バージョンを使用する必要があります。

     

次の図は、PMP プロセスで作成されたメディア ソースを示しています。

pmp プロセスのメディア ソースの図。

保護されたメディア ファイルを再生する方法

メディア セッション

保護されたメディア パス