Champ des restrictions d’utilisation
Note
Cette rubrique s’applique à Windows 7 ou version ultérieure.
Une restriction champ d’utilisation est une disposition qui limite l’utilisation d’une licence pour une technologie particulière.
Media Foundation fournit un mécanisme permettant d’appliquer des restrictions de champ d’utilisation sur les transformations Media Foundation (MFT), en particulier les codecs. Ce mécanisme exige que le MFT bloque son propre utilisation par les applications jusqu’à ce que l’application ait effectué une négociation avec le MFT. Media Foundation ne définit pas l’établissement d’une négociation , généralement, il implique une sorte d’échange de chiffrement.
Inscription et énumération
Si un MFT a des restrictions de champ d’utilisation, définissez l’indicateur MFT_ENUM_FLAG_FIELDOFUSE lorsque vous inscrivez le MFT. Cet indicateur s’applique aux API d’inscription MFT suivantes :
Par défaut, les mfTs inscrits avec cet indicateur sont exclus des résultats d’énumération. Pour énumérer les mfT avec des restrictions de champ d’utilisation, appelez MFTEnumEx et spécifiez l’indicateur de MFT_ENUM_FLAG_FIELDOFUSE dans le paramètre indicateurs de. Le diagramme suivant illustre ce processus.
diagramme
La fonction MFTEnum exclut toujours les mfT qui ont des restrictions de champ d’utilisation.
Déverrouillage du MFT
Pour utiliser un MFT avec des restrictions de champ d’utilisation, procédez comme suit :
- L’application implémente l’interface IMFFieldOfUseMFTUnlock.
- La méthode IMFFieldOfUseMFTUnlock ::Unlock prend un pointeur vers l’interface IUnknown du MFT.
- Dans la méthode Unlock, l’application effectue l’établissement d’une liaison requise, à l’aide du mécanisme défini par le MFT. Cette étape n’est pas définie par l’API Media Foundation.
- Si la méthode Unlock réussit, le MFT se déverrouille.
L’application spécifie le pointeur IMFFieldOfUseMFTUnlock en définissant l’attribut MFT_FIELDOFUSE_UNLOCK_Attribute. Il existe plusieurs façons de définir cet attribut, selon la façon dont votre application crée le pipeline de décodage ou d’encodage :
API | Comment déverrouiller le champ -Of-Use |
---|---|
Lecteur source | Si votre application utilise le lecteur source pour décoder un fichier multimédia, définissez l’attribut MFT_FIELDOFUSE_UNLOCK_Attribute dans les paramètres de configuration. Consultez attributs de lecteur source. |
Enregistreur récepteur | Si votre application utilise l’enregistreur récepteur pour encoder un fichier multimédia, définissez l’attribut MFT_FIELDOFUSE_UNLOCK_Attribute dans les paramètres de configuration. Consultez attributs de l’enregistreur récepteur. |
Transcode rapide | Si votre application utilise la fonctionnalité Fast Transcode pour créer une topologie d’encodage, définissez la MFT_FIELDOFUSE_UNLOCK_Attribute lorsque vous appelez IMFTranscodeProfile ::SetContainerAttributes. Pour plus d’informations sur la fonctionnalité Transcode rapide, consultez 'API Transcode. |
Topologie | Si vous créez une topologie directement, définissez la MFT_FIELDOFUSE_UNLOCK_Attribute en tant qu’attribut sur la topologie. Consultez attributs de topologie. |
Objet d’activation MFT | Si votre application énumère directement les décodeurs ou encodeurs qu’elle utilisera, définissez la MFT_FIELDOFUSE_UNLOCK_Attribute sur les pointeurs IMFActivate retournés par la fonction MFTEnumEx. Définissez l’attribut avant d’appeler IMFActivate ::ActivateObject pour créer le MFT. L’objet d’activation appelle IMFFieldOfUseMFTUnlock ::Unlock lorsqu’il crée le MFT. |
Le diagramme suivant montre la relation entre les objets d’activation MFT et l’interface IMFFieldOfUseMFTUnlock.
Rubriques connexes