Nutzungseinschränkungen

Hinweis

Dieses Thema gilt für Windows 7 oder höher.

Eine Verwendungseinschränkung ist eine Bereitstellung, die die Verwendung einer Lizenz für eine bestimmte Technologie einschränkt.

Media Foundation bietet einen Mechanismus zum Erzwingen von Nutzungseinschränkungen für Media Foundation Transformationen (MFTs), insbesondere Codecs. Dieser Mechanismus erfordert, dass MFT seine eigene Verwendung durch Anwendungen blockiert, bis die Anwendung einen Handshake mit dem MFT ausgeführt hat. Media Foundation den Handshake nicht definiert– in der Regel würde dies einen kryptografischen Austausch beinhalten.

Registrierung und Enumeration

Wenn für ein MFT Nutzungseinschränkungen gelten, legen Sie das Flag MFT _ ENUM _ FLAG _ FIELDOFUSE fest, wenn Sie MFT registrieren. Dieses Flag gilt für die folgenden MFT-Registrierungs-APIs:

Standardmäßig werden MFTs, die mit diesem Flag registriert sind, aus den Enumerationsergebnissen ausgeschlossen. Rufen Sie MFTEnumEx auf, und geben Sie im Flags-Parameter das Flag MFT _ ENUM _ FLAG _ FIELDOFUSE an, um MFTs mit Verwendungseinschränkungen aufzählen zu können. Dieser Prozess wird anhand des folgenden Diagramms veranschaulicht.

Diagramm, das mft und eine Anwendung zeigt, die Daten an die Registrierung sendet

Die MFTEnum-Funktion schließt immer alle MFTs mit Nutzungseinschränkungen aus.

Entsperren des MFT

Führen Sie die folgenden Schritte aus, um MFT mit Nutzungseinschränkungen zu verwenden:

  1. Die Anwendung implementiert die BERFTF-Schnittstelle .B.
  2. Die METHODE 100000011100007 verwendet einen Zeiger auf die IUnknown-Schnittstelle von MFT.
  3. In der Unlock-Methode führt die Anwendung den erforderlichen Handshake mithilfe des vom MFT definierten Mechanismus aus. Dieser Schritt wird nicht von der Media Foundation DEFINIERT.
  4. Wenn die Unlock-Methode erfolgreich ist, entsperrt sich MFT selbst.

Die Anwendung gibt den ZEIGER AUF DAS FELDOFUSE UNLOCK-Attribut (MFT _ FIELDOFUSE _ UNLOCK _ Attribute) an. Je nachdem, wie Ihre Anwendung den Decoder oder die Codierungspipeline erstellt, gibt es verschiedene Möglichkeiten, dieses Attribut zu festlegen:

API Entsperren des Verwendungsfelds
Quellleser Wenn Ihre Anwendung den Quellleser zum Decodieren einer Mediendatei verwendet, legen Sie das Attribut MFT _ FIELDOFUSE _ UNLOCK _ Attribute in den Konfigurationsparametern fest. Weitere Informationen finden Sie unter Quellleseattribute.
Sink Writer Wenn Ihre Anwendung den Senkenwriter zum Codieren einer Mediendatei verwendet, legen Sie das Attribut MFT _ FIELDOFUSE _ UNLOCK _ Attribute in den Konfigurationsparametern fest. Weitere Informationen finden Sie unter Sink Writer-Attribute.
Schnelle Transcodierung Wenn Ihre Anwendung das Feature "Fast Transcode" verwendet, um eine Codierungstopologie zu erstellen, legen Sie das MFT _ FIELDOFUSE _ _ UNLOCK-Attribut fest, wenn Sie DIEDTRANSCODEProfile::SetContainerAttributes aufrufen. Weitere Informationen zum Feature "Schnelle Transcodierung" finden Sie unter Transcodierungs-API.
Topologie Wenn Sie eine Topologie direkt erstellen, legen Sie das MFT _ FIELDOFUSE _ _ UNLOCK-Attribut als Attribut für die Topologie fest. Weitere Informationen finden Sie unter Topologieattribute.
MFT-Aktivierungsobjekt Wenn Ihre Anwendung die zu verwendenden Decoder oder Encoder direkt aufzählt, legen Sie das MFT _ FIELDOFUSE _ _ UNLOCK-Attribut für die VON der MFTEnumEx-Funktion zurückgegebenen UNLOCKActivate-Zeiger fest.
Legen Sie das -Attribut fest, bevor Sie ZUM ERSTELLEN des MFT-Objekts DIEACTIVate::ActivateObject-Methode aufrufen. Das Aktivierungsobjekt ruft BEIM Erstellen des MFT-Objekts DEN Aufruf VON DURCHEFIELDOfUseMFTUnlock::Unlock auf.

Das folgende Diagramm zeigt die Beziehung zwischen MFT-Aktivierungsobjekten und der BENUTZEROBERFLÄCHEFieldOfUseMFTUnlock-Schnittstelle.

Diagramm, das eine Anwendung, ein Aktivierungsobjekt und Mft mit Pfeilen zu einem FOU-Objekt zeigt, das über einen Pfeil zurück zu Mft verfügt

Media Foundation Transformationen