Поле ограничений использования
Примечание
Этот раздел относится к Windows 7 или более поздней версии.
Ограничение в области использования — это подготовка, которая ограничивает способ использования лицензии для конкретной технологии.
Media Foundation предоставляет механизм применения ограничений на использование преобразований Media Foundation (MFT), в частности кодеков. Этот механизм требует, чтобы MFT блокировал свое собственное использование приложениями, пока приложение не выполнило подтверждение с помощью MFT. Media Foundation не определяет подтверждение , как правило, это будет включать какой-то криптографический обмен.
Регистрация и перечисление
Если MFT имеет ограничения на использование, установите флаг MFT_ENUM_FLAG_FIELDOFUSE при регистрации MFT. Этот флаг применяется к следующим API регистрации MFT:
По умолчанию MFT, зарегистрированные с этим флагом, исключаются из результатов перечисления. Чтобы перечислить MFT с ограничениями поля использования, вызовите MFTEnumEx и укажите флаг MFT_ENUM_FLAG_FIELDOFUSE в параметре Flags . Этот процесс представлен на схеме ниже.
Функция MFTEnum всегда исключает все MFT , имеющие ограничения на использование.
Разблокировка MFT
Чтобы использовать MFT с ограничениями на использование полей, выполните следующие действия:
- Приложение реализует интерфейс IMFFieldOfUseMFTUnlock .
- Метод IMFFieldOfUseMFTUnlock::Unlock принимает указатель на интерфейс IUnknown MFT.
- В методе Unlock приложение выполняет необходимое подтверждение, используя любой механизм, определенный MFT. Этот шаг не определен API Media Foundation.
- Если метод Разблокировки завершается успешно, MFT разблокирует себя.
Приложение указывает указатель IMFFieldOfUseMFTUnlock , задав атрибут MFT_FIELDOFUSE_UNLOCK_Attribute . Задать этот атрибут можно несколькими способами в зависимости от того, как приложение создает декодер или конвейер кодирования:
API | Как разблокировать поле использования |
---|---|
Средство чтения исходного кода | Если приложение использует средство чтения источника для декодирования файла мультимедиа, задайте атрибут MFT_FIELDOFUSE_UNLOCK_Attribute в параметрах конфигурации. См . атрибуты средства чтения источника. |
Модуль записи приемника | Если приложение использует модуль записи приемника для кодирования файла мультимедиа, задайте атрибут MFT_FIELDOFUSE_UNLOCK_Attribute в параметрах конфигурации. См . атрибуты модуля записи приемника. |
Быстрый транскод | Если приложение использует функцию быстрого транскода для создания топологии кодирования, задайте MFT_FIELDOFUSE_UNLOCK_Attribute при вызове IMFTranscodeProfile::SetContainerAttributes. Дополнительные сведения о функции быстрого транскода см. в разделе API Transcode. |
Топология | Если топология создается напрямую, задайте MFT_FIELDOFUSE_UNLOCK_Attribute в качестве атрибута в топологии. См . атрибуты топологии. |
Объект активации MFT | Если приложение напрямую перечисляет декодеры или кодировщики, которые он будет использовать, задайте MFT_FIELDOFUSE_UNLOCK_Attribute в указателях IMFActivate , возвращаемых функцией MFTEnumEx . Задайте атрибут перед вызовом IMFActivate::ActivateObject для создания MFT. Объект активации вызывает IMFFieldOfUseMFTUnlock::Unlock при создании MFT . |
На следующей схеме показана связь между объектами активации MFT и интерфейсом IMFFieldOfUseMFTUnlock .
Связанные темы