Champ de restrictions d’utilisation
Notes
Cette rubrique s’applique à Windows 7 ou version ultérieure.
Une restriction de 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 nécessite 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. En règle générale, il s’agit d’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 MFT 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 MFT_ENUM_FLAG_FIELDOFUSE dans le paramètre Flags . Le diagramme suivant illustre ce processus.
La fonction MFTEnum exclut toujours tous 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 la négociation 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 lui-même.
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 décodeur ou le pipeline d’encodage :
API | Comment déverrouiller un champ d’utilisation |
---|---|
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 du 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é De transcode rapide, consultez API Transcode. |
Topologie | Si vous créez une topologie directement, définissez le 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 les 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