Функция MFCreateTransformActivate (mftransform.h)
Создает универсальный объект активации для преобразований Media Foundation (MFT).
Синтаксис
HRESULT MFCreateTransformActivate(
[out] IMFActivate **ppActivate
);
Параметры
[out] ppActivate
Получает указатель на интерфейс IMFActivate . Вызывающий объект должен освободить интерфейс .
Возвращаемое значение
Если эта функция завершается успешно, она возвращает S_OK. В противном случае возвращается код ошибки HRESULT .
Комментарии
Большинство приложений не будут использовать эту функцию; он используется внутри функции MFTEnumEx .
Объект активации — это вспомогательный объект, который создает другой объект, несколько похожий на фабрику классов. Функция MFCreateTransformActivate создает объект активации для MFT. Прежде чем этот объект активации сможет создать MFT, вызывающий объект должен инициализировать объект активации, задав для него один или несколько атрибутов.
attribute | Описание |
---|---|
MFT_TRANSFORM_CLSID_Attribute | Обязательный. Содержит CLSID MFT. Объект активации создает MFT, передав этот ИДЕНТИФИКАТОР CLSID в функцию CoCreateInstance . |
MF_TRANSFORM_CATEGORY_Attribute | Необязательный элемент. Указывает категорию MFT. |
MF_TRANSFORM_FLAGS_Attribute | Содержит различные флаги, описывающие MFT. Для аппаратных MFT установите флаг MFT_ENUM_FLAG_HARDWARE . В противном случае этот атрибут является необязательным. |
MFT_CODEC_MERIT_Attribute |
Необязательный элемент. Содержит значение заслуг аппаратного кодека.
Если этот атрибут задан и его значение больше нуля, объект активации вызывает MFGetMFTMerit , чтобы получить значение доверия для MFT. Если значение доверия меньше значения этого атрибута, метод IMFActivate::ActivateObject объекта активации завершается сбоем и возвращает MF_E_INVALID_CODEC_MERIT. |
MFT_ENUM_HARDWARE_URL_Attribute | Требуется для аппаратных MFT. Указывает символьную ссылку для аппаратного устройства. Прокси-сервер устройства использует это значение для настройки MFT. |
MFT_FIELDOFUSE_UNLOCK_Attribute |
Необязательный элемент. Содержит указатель IMFFieldOfUseMFTUnlock , который можно использовать для разблокировки MFT. Интерфейс IMFFieldOfUseMFTUnlock используется с MFT с ограничениями на использование.
Если этот атрибут задан и атрибут MF_TRANSFORM_FLAGS_Attribute содержит флаг MFT_ENUM_FLAG_FIELDOFUSE , объект активации вызывает IMFFieldOfUseMFTUnlock::Unlock при создании MFT. Приложение также может задать атрибут MFT_FIELDOFUSE_UNLOCK_Attribute , не устанавливая флаг MFT_ENUM_FLAG_FIELDOFUSE . В этом случае приложение должно вызвать Unlock. |
MFT_PREFERRED_ENCODER_PROFILE |
Необязательный элемент. Содержит профиль кодирования для кодировщика. Значением этого атрибута является указатель IMFAttributes .
Если этот атрибут задан и значение атрибута MF_TRANSFORM_CATEGORY_Attributeравно MFT_CATEGORY_AUDIO_ENCODER или MFT_CATEGORY_VIDEO_ENCODER, объект активации использует профиль кодирования для настройки MFT. Для этой цели MFT должен предоставлять ICodecAPI или IPropertyStore . |
MFT_PREFERRED_OUTPUTTYPE_Attribute |
Необязательный элемент. Задает предпочтительный формат вывода для кодировщика.
Если этот атрибут задан и значение атрибута MF_TRANSFORM_CATEGORY_AttributeMFT_CATEGORY_AUDIO_ENCODER или MFT_CATEGORY_VIDEO_ENCODER, объект активации задает этот тип носителя в MFT. |
Дополнительные сведения об объектах активации см. в разделе Объекты активации.
Требования
Минимальная версия клиента | Windows 7 [только классические приложения] |
Минимальная версия сервера | Windows Server 2008 R2 [только классические приложения] |
Целевая платформа | Windows |
Header | mftransform.h |
Библиотека | Mfplat.lib |
DLL | Mfplat.dll |