Método IMFTransform::SetInputType (mftransform.h)

Define, testa ou limpa o tipo de mídia para um fluxo de entrada nesta MFT (transformação do Media Foundation).

Sintaxe

HRESULT SetInputType(
  [in] DWORD        dwInputStreamID,
  [in] IMFMediaType *pType,
  [in] DWORD        dwFlags
);

Parâmetros

[in] dwInputStreamID

Identificador de fluxo de entrada. Para obter a lista de identificadores de fluxo, chame IMFTransform::GetStreamIDs.

[in] pType

Ponteiro para a interface IMFMediaType ou NULL.

[in] dwFlags

Zero ou mais sinalizadores da enumeração _MFT_SET_TYPE_FLAGS .

Retornar valor

O método retorna um HRESULT. Os possíveis valores incluem, mas sem limitação, aqueles na tabela a seguir.

Código de retorno Descrição
S_OK
O método foi bem-sucedido.
MF_E_INVALIDMEDIATYPE
O MFT não pode usar o tipo de mídia proposto.
MF_E_INVALIDSTREAMNUMBER
Identificador de fluxo inválido.
MF_E_INVALIDTYPE
O tipo proposto não é válido. Esse código de erro indica que o tipo de mídia em si não está configurado corretamente; por exemplo, ele pode conter atributos mutuamente contraditórios.
MF_E_TRANSFORM_CANNOT_CHANGE_MEDIATYPE_WHILE_PROCESSING
O MFT não pode alternar tipos durante o processamento de dados. Tente esvaziar ou liberar o MFT.
MF_E_TRANSFORM_TYPE_NOT_SET
Você deve definir os tipos de saída antes de definir os tipos de entrada.
MF_E_UNSUPPORTED_D3D_TYPE
O MFT não pôde encontrar uma configuração adequada de Aceleração de Vídeo DirectX (DXVA).

Comentários

Esse método pode ser usado para definir, testar sem definir ou limpar o tipo de mídia:

  • Para definir o tipo de mídia, defina dwFlags como zero e defina pType como um ponteiro não NULL que especifica o tipo de mídia.
  • Para testar o tipo de mídia sem defini-lo, defina dwFlags como MFT_SET_TYPE_TEST_ONLY e defina pType como um ponteiro não NULL que especifica o tipo de mídia. Se o tipo de mídia for aceitável, o método retornará S_OK. Caso contrário, ele retornará MF_E_INVALIDMEDIATYPE. Independentemente do valor retornado, o tipo de mídia atual não é alterado.
  • Para limpar o tipo de mídia, defina pType como NULL.
Definir o tipo de mídia em um fluxo pode alterar os tipos aceitáveis em outro fluxo.

Um MFT pode exigir que o chamador defina um ou mais tipos de saída antes de definir o tipo de entrada. Nesse caso, o método retorna MF_E_TRANSFORM_TYPE_NOT_SET.

Se o MFT der suporte à Aceleração de Vídeo DirectX (DXVA), mas não conseguir encontrar uma configuração DXVA adequada (por exemplo, se o driver de gráficos não tiver os recursos corretos), o método deverá retornar MF_E_UNSUPPORTED_D3D_TYPE. Para obter mais informações, consulte Suporte ao DXVA 2.0 no Media Foundation.

Se MFT_UNIQUE_METHOD_NAMES for definido antes de incluir mftransform.h, esse método será renomeado como MFTSetInputType. Consulte Criando objetos DMO/MFT híbridos.

Requisitos

Requisito Valor
Cliente mínimo com suporte Windows Vista [aplicativos da área de trabalho | Aplicativos UWP]
Servidor mínimo com suporte Windows Server 2008 [aplicativos da área de trabalho | Aplicativos UWP]
Plataforma de Destino Windows
Cabeçalho mftransform.h
Biblioteca Mfuuid.lib

Confira também

IMFTransform

Transformações do Media Foundation