Share via


Função MFTRegister (mfapi.h)

Adiciona informações sobre uma MFT (transformação do Media Foundation) ao registro.

Os aplicativos podem enumerar o MFT chamando a função MFTEnum ou MFTEnumEx .

Sintaxe

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
);

Parâmetros

[in] clsidMFT

O CLSID do MFT. O MFT também deve ser registrado como um objeto COM usando o mesmo CLSID.

[in] guidCategory

GUID que especifica a categoria do MFT. Para obter uma lista de categorias de MFT, consulte MFT_CATEGORY.

[in] pszName

Cadeia de caracteres largos que contém o nome amigável do MFT.

[in] Flags

OR bit a bit de zero ou mais dos seguintes sinalizadores da enumeração _MFT_ENUM_FLAG:

Valor Significado
MFT_ENUM_FLAG_ASYNCMFT
O MFT executa o processamento assíncrono no software. Consulte MFTs assíncronos. Esse sinalizador não se aplica a transformações de hardware.

Requer o Windows 7.

MFT_ENUM_FLAG_FIELDOFUSE
O aplicativo deve desbloquear o MFT para usá-lo. Consulte IMFFieldOfUseMFTUnlock.

Requer o Windows 7.

MFT_ENUM_FLAG_HARDWARE
O MFT executa o processamento de dados baseado em hardware, usando o driver AVStream ou um MFT proxy baseado em GPU. Os MFTs nessa categoria sempre processam dados de forma assíncrona. Consulte MFTs de hardware.
Nota Esse sinalizador se aplica a codecs de vídeo e processadores de vídeo que executam seu trabalho inteiramente em hardware. Ele não se aplica a decodificadores de software que usam Aceleração de Vídeo DirectX para auxiliar na decodificação.
 
Requer o Windows 7.
MFT_ENUM_FLAG_SYNCMFT
O MFT executa o processamento síncrono no software. Esse sinalizador não se aplica a transformações de hardware.
MFT_ENUM_FLAG_TRANSCODE_ONLY
O MFT é otimizado para transcodificação e não deve ser usado para reprodução.

Requer o Windows 7.

 

Definir Sinalizadores como zero é equivalente a definir o sinalizador MFT_ENUM_FLAG_SYNCMFT . O modelo de processamento padrão para MFTs é o processamento síncrono.

Antes do Windows 7, o parâmetro Flags era reservado.

[in] cInputTypes

Número de elementos na matriz pInputTypes .

[in] pInputTypes

Ponteiro para uma matriz de estruturas MFT_REGISTER_TYPE_INFO . Cada membro da matriz especifica um formato de entrada ao qual o MFT dá suporte. Este parâmetro pode ser NULL.

Este parâmetro pode ser NULL. No entanto, se o parâmetro for NULL, o MFT será enumerado somente quando um aplicativo especificar NULL para o tipo de entrada desejado.

[in] cOutputTypes

Número de elementos na matriz pOutputTypes .

[in] pOutputTypes

Ponteiro para uma matriz de estruturas MFT_REGISTER_TYPE_INFO . Cada membro da matriz define um formato de saída ao qual o MFT dá suporte.

Este parâmetro pode ser NULL. No entanto, se o parâmetro for NULL, o MFT será enumerado somente quando um aplicativo especificar NULL para o tipo de saída desejado.

[in] pAttributes

Ponteiro para a interface IMFAttributes de um repositório de atributos que contém informações adicionais do Registro. Este parâmetro pode ser NULL. Se o parâmetro não for NULL, os atributos serão gravados no registro como uma matriz de bytes. Você pode usar a função MFTGetInfo para recuperar os atributos.

O seguinte atributo é definido para este parâmetro:

Valor Significado
MFT_CODEC_MERIT_Attribute
Contém o valor de mérito de um codec de hardware. Consulte Codec Merit.

Valor retornado

Se essa função for bem-sucedida, ela retornará S_OK. Caso contrário, ele retornará um código de erro HRESULT.

Comentários

As entradas do Registro criadas por essa função são lidas pelas seguintes funções:

Função Descrição
MFTEnum Enumera MFTs por tipo de mídia e categoria.
MFTEnumEx Versão estendida do MFTEnum.
MFTGetInfo Pesquisa um MFT por CLSID e recupera as informações do Registro.
 

Essa função não registra o CLSID do MFT para as funções CoCreateInstance ou CoGetClassObject .

Para remover as entradas do registro, chame MFTUnregister. Se você remover um MFT do sistema, sempre deverá chamar MFTUnregister.

Os formatos dados nos parâmetros pInputTypes e pOutputTypes destinam-se a ajudar os aplicativos a pesquisar MFTs por formato. Os aplicativos podem usar as funções MFTEnum ou MFTEnumEx para enumerar MFTs que correspondem a um determinado conjunto de formatos.

É recomendável especificar pelo menos um tipo de entrada em pInputTypes e um tipo de saída no parâmetro pOutputTypes . Caso contrário, o MFT pode ser ignorado na enumeração .

No Windows de 64 bits, a versão de 32 bits dessa função registra o MFT no nó de 32 bits do registro. Para obter mais informações, consulte Dados do aplicativo de 32 bits e 64 bits no Registro.

Requisitos

   
Cliente mínimo com suporte Windows Vista [somente aplicativos da área de trabalho]
Servidor mínimo com suporte Windows Server 2008 [somente aplicativos da área de trabalho]
Plataforma de Destino Windows
Cabeçalho mfapi.h
Biblioteca Mfplat.lib
DLL Mfplat.dll

Confira também

MFTEnumEx

Funções do Media Foundation

Transformações do Media Foundation

_MFT_ENUM_FLAG