Функция MFTRegister (mfapi.h)

Добавляет сведения о преобразовании Media Foundation (MFT) в реестр.

Приложения могут перечислить MFT путем вызова функции MFTEnum или MFTEnumEx .

Синтаксис

HRESULT MFTRegister(
  [in] CLSID                  clsidMFT,
  [in] GUID                   guidCategory,
  [in] LPWSTR                 pszName,
  [in] UINT32                 Flags,
  [in] UINT32                 cInputTypes,
  [in] MFT_REGISTER_TYPE_INFO *pInputTypes,
  [in] UINT32                 cOutputTypes,
  [in] MFT_REGISTER_TYPE_INFO *pOutputTypes,
  [in] IMFAttributes          *pAttributes
);

Параметры

[in] clsidMFT

ИДЕНТИФИКАТОР CLSID MFT. MFT также должен быть зарегистрирован как COM-объект с использованием того же идентификатора CLSID.

[in] guidCategory

GUID, указывающий категорию MFT. Список категорий MFT см. в разделе MFT_CATEGORY.

[in] pszName

Строка расширенных символов, содержащая понятное имя MFT.

[in] Flags

Побитовое ЗНАЧЕНИЕ ИЛИ равно нулю или более из следующих флагов из перечисления _MFT_ENUM_FLAG :

Значение Значение
MFT_ENUM_FLAG_ASYNCMFT
MFT выполняет асинхронную обработку в программном обеспечении. См . асинхронные MFT. Этот флаг не применяется к аппаратным преобразованиям.

Требуется Windows 7.

MFT_ENUM_FLAG_FIELDOFUSE
Чтобы использовать его, приложение должно разблокировать MFT. См . раздел IMFFieldOfUseMFTUnlock.

Требуется Windows 7.

MFT_ENUM_FLAG_HARDWARE
MFT выполняет аппаратную обработку данных с помощью драйвера AVStream или прокси-сервера MFT на основе GPU. MFT в этой категории всегда обрабатывают данные асинхронно. См. раздел Аппаратные MFT.
Примечание Этот флаг применяется к видеокодекам и видеопроцессоров, которые выполняют свою работу полностью на оборудовании. Он не применяется к декодедерам программного обеспечения, которые используют ускорение видео DirectX для поддержки декодирования.
 
Требуется Windows 7.
MFT_ENUM_FLAG_SYNCMFT
MFT выполняет синхронную обработку в программном обеспечении. Этот флаг не применяется к аппаратным преобразованиям.
MFT_ENUM_FLAG_TRANSCODE_ONLY
MFT оптимизирован для перекодирования и не должен использоваться для воспроизведения.

Требуется Windows 7.

 

Установка нулевого значения флага эквивалентна установке флага MFT_ENUM_FLAG_SYNCMFT . По умолчанию для MFT используется синхронная обработка.

До Windows 7 параметр Flags был зарезервирован.

[in] cInputTypes

Количество элементов в массиве pInputTypes .

[in] pInputTypes

Указатель на массив MFT_REGISTER_TYPE_INFO структур. Каждый элемент массива задает формат входных данных, поддерживаемый MFT. Этот параметр может принимать значение NULL.

Этот параметр может принимать значение NULL. Однако если параметр имеет значение NULL, MFT будет перечисляться только в том случае, если приложение задает значение NULL для требуемого типа входных данных.

[in] cOutputTypes

Количество элементов в массиве pOutputTypes .

[in] pOutputTypes

Указатель на массив MFT_REGISTER_TYPE_INFO структур. Каждый элемент массива определяет формат вывода, поддерживаемый MFT.

Этот параметр может принимать значение NULL. Однако если параметр имеет значение NULL, MFT будет перечисляться только в том случае, если приложение задает значение NULL для требуемого типа вывода.

[in] pAttributes

Указатель на интерфейс IMFAttributes хранилища атрибутов, содержащего дополнительные сведения о реестре. Этот параметр может принимать значение NULL. Если параметр не равен NULL, атрибуты записываются в реестр в виде массива байтов. Для получения атрибутов можно использовать функцию MFTGetInfo .

Для этого параметра определен следующий атрибут:

Значение Значение
MFT_CODEC_MERIT_Attribute
Содержит значение заслуг аппаратного кодека. См. раздел Заслуги кодека.

Возвращаемое значение

Если эта функция выполняется успешно, она возвращает S_OK. В противном случае возвращается код ошибки HRESULT .

Комментарии

Записи реестра, созданные этой функцией, считываются следующими функциями:

Функция Описание
MFTEnum Перечисляет MFT по типу и категории носителя.
MFTEnumEx Расширенная версия MFTEnum.
MFTGetInfo Ищет MFT по CLSID и получает сведения о реестре.
 

Эта функция не регистрирует CLSID MFT для функций CoCreateInstance или CoGetClassObject .

Чтобы удалить записи из реестра, вызовите MFTUnregister. При удалении MFT из системы следует всегда вызывать MFTUnregister.

Форматы, заданные в параметрах pInputTypes и pOutputTypes , предназначены для помощи приложениям в поиске MFT по формату. Приложения могут использовать функции MFTEnum или MFTEnumEx для перечисления MFT, соответствующих определенному набору форматов.

Рекомендуется указать по крайней мере один тип входных данных в pInputTypes и один тип вывода в параметре pOutputTypes . В противном случае MFT может быть пропущен в перечислении.

В 64-разрядной версии Windows 32-разрядная версия этой функции регистрирует MFT в 32-разрядном узле реестра. Дополнительные сведения см. в разделе 32-разрядные и 64-разрядные данные приложений в реестре.

Требования

   
Минимальная версия клиента Windows Vista [только классические приложения]
Минимальная версия сервера Windows Server 2008 [только классические приложения]
Целевая платформа Windows
Header mfapi.h
Библиотека Mfplat.lib
DLL Mfplat.dll

См. также раздел

MFTEnumEx

Функции Media Foundation

Преобразования Media Foundation

_MFT_ENUM_FLAG