Compartir a través de


Restricciones de campo de uso

Nota

Este tema se aplica a Windows 7 o posterior.

 

Una restricción de de campo de uso es una disposición que limita cómo se puede usar una licencia para una tecnología determinada.

Media Foundation proporciona un mecanismo para aplicar restricciones de campo de uso en transformaciones (MFT) de Media Foundation, especialmente códecs. Este mecanismo requiere que el MFT bloquee su propio uso por parte de las aplicaciones hasta que la aplicación haya realizado un protocolo de enlace con MFT. Media Foundation no define el protocolo de enlace; normalmente, implicaría algún tipo de intercambio criptográfico.

Registro y enumeración

Si un MFT tiene restricciones de campo de uso, establezca la marca de MFT_ENUM_FLAG_FIELDOFUSE al registrar el MFT. Esta marca se aplica a las siguientes API de registro de MFT:

De forma predeterminada, los MFT registrados con esta marca se excluyen de los resultados de la enumeración. Para enumerar las MFT con restricciones de campo de uso, llame a MFTEnumEx y especifique la marca MFT_ENUM_FLAG_FIELDOFUSE en el parámetro Flags. En el diagrama siguiente se muestra este proceso.

diagrama que muestra mft y una aplicación que envía datos al registro

La funciónMFTEnum siempre excluye las MFP que tengan restricciones de campo de uso.

Desbloqueo del MFT

Para usar un MFT con restricciones de campo de uso, realice los pasos siguientes:

  1. La aplicación implementa la interfazIMFFieldOfUseMFTUnlock.
  2. El método IMFFieldOfUseMFTUnlock::Unlock toma un puntero a la interfaz IUnknown del MFT.
  3. En el método Unlock, la aplicación realiza el protocolo de enlace necesario, utilizando cualquier mecanismo definido por el MFT. Media Foundation API no define este paso.
  4. Si el método Unlock se realiza correctamente, el MFT se desbloquea a sí mismo.

La aplicación especifica el puntero IMFFieldOfUseMFTUnlock estableciendo el atributo MFT_FIELDOFUSE_UNLOCK_Attribute. Hay varias maneras diferentes de establecer este atributo, en función de cómo la aplicación cree el descodificador o la canalización de codificación:

API Cómo desbloquear campo:Of-Use
Lector de origen Si la aplicación usa el lector de origen de para descodificar un archivo multimedia, establezca el atributo MFT_FIELDOFUSE_UNLOCK_Attribute en los parámetros de configuración. Consulte atributos del lector de origen.
Receptor escritor Si la aplicación usa el escritor receptor para codificar un archivo multimedia, establezca el atributo MFT_FIELDOFUSE_UNLOCK_Attribute en los parámetros de configuración. Consulte atributos de escritor de receptores.
Transcodificación rápida Si la aplicación usa la característica Fast Transcode para crear una topología de codificación, establezca el MFT_FIELDOFUSE_UNLOCK_Attribute al llamar a IMFTranscodeProfile::SetContainerAttributes. Para obtener más información sobre la característica Fast Transcode, consulte Transcode API.
Topología Si crea una topología directamente, establezca el MFT_FIELDOFUSE_UNLOCK_Attribute como atributo en la topología. Consulte atributos de topología de .
Objeto de activación de MFT Si la aplicación enumera directamente los descodificadores o codificadores que usará, establezca el MFT_FIELDOFUSE_UNLOCK_Attribute en el IMFActivate punteros devueltos por la función MFTEnumEx.
Establezca el atributo antes de llamar a IMFActivate::ActivateObject para crear el MFT. El objeto de activación llama a IMFFieldOfUseMFTUnlock::Unlock cuando crea el MFT.

 

En el diagrama siguiente se muestra la relación entre los objetos de activación de MFT y la interfaz IMFFieldOfUseMFTUnlock.

diagrama que muestra una aplicación, un objeto de activación y un mft con flechas a un objeto de falta, que tiene una flecha hacia atrás a mft

Media Foundation transforma