Ограничения области использования
Примечание
Этот раздел относится к 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.
- Если метод Unlock завершается успешно, MFT разблокирует себя.
Приложение задает указатель IMFFieldOfUseMFTUnlock , задавая атрибут MFT_FIELDOFUSE_UNLOCK_Attribute . Задать этот атрибут можно несколькими способами в зависимости от того, как приложение создает декодер или конвейер кодирования.
API | Как разблокировать поле использования |
---|---|
Средство чтения исходного кода | Если приложение использует средство чтения источника для декодирования файла мультимедиа, задайте атрибут MFT_FIELDOFUSE_UNLOCK_Attribute в параметрах конфигурации. См. раздел Атрибуты средства чтения источника. |
Модуль записи приемника | Если приложение использует модуль записи приемника для кодирования файла мультимедиа, задайте атрибут MFT_FIELDOFUSE_UNLOCK_Attribute в параметрах конфигурации. См. раздел Атрибуты модуля записи приемника. |
Быстрое перекодирование | Если приложение использует функцию быстрого перекода для создания топологии кодирования, задайте MFT_FIELDOFUSE_UNLOCK_Attribute при вызове IMFTranscodeProfile::SetContainerAttributes. Дополнительные сведения о функции быстрого перекода см. в разделе API перекодировки. |
Топология | Если вы создаете топологию напрямую, задайте MFT_FIELDOFUSE_UNLOCK_Attribute в качестве атрибута в топологии. См. раздел Атрибуты топологии. |
Объект активации MFT | Если приложение напрямую перечисляет используемые декодеры или кодировщики, задайте MFT_FIELDOFUSE_UNLOCK_Attribute указателей IMFActivate , возвращаемых функцией MFTEnumEx . Задайте атрибут перед вызовом IMFActivate::ActivateObject для создания MFT. Объект активации вызывает IMFFieldOfUseMFTUnlock::Unlock при создании MFT. |
На следующей схеме показана связь между объектами активации MFT и интерфейсом IMFFieldOfUseMFTUnlock .
Связанные темы