Método IMFTransform::GetInputAvailableType (mftransform.h)
Obtém um tipo de mídia disponível para um fluxo de entrada nesta transformação do Media Foundation (MFT).
Sintaxe
HRESULT GetInputAvailableType(
[in] DWORD dwInputStreamID,
[in] DWORD dwTypeIndex,
[out] IMFMediaType **ppType
);
Parâmetros
[in] dwInputStreamID
Identificador de fluxo de entrada. Para obter a lista de identificadores de fluxo, chame IMFTransform::GetStreamIDs.
[in] dwTypeIndex
Índice do tipo de mídia a ser recuperado. Os tipos de mídia são indexados de zero e retornados em ordem aproximada de preferência.
[out] ppType
Recebe um ponteiro para a interface IMFMediaType .
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 |
---|---|
|
O método foi bem-sucedido. |
|
O MFT não tem uma lista de tipos de entrada disponíveis. |
|
Identificador de fluxo inválido. |
|
O parâmetro dwTypeIndex está fora do intervalo. |
|
Você deve definir os tipos de saída antes de definir os tipos de entrada. |
Comentários
O MFT define uma lista de tipos de mídia disponíveis para cada fluxo de entrada e os ordena por preferência. Esse método enumera os tipos de mídia disponíveis para um fluxo de entrada. Para enumerar os tipos disponíveis, incremente dwTypeIndex até que o método retorne MF_E_NO_MORE_TYPES.
Definir o tipo de mídia em um fluxo pode alterar os tipos disponíveis para outro fluxo ou alterar a ordem de preferência. No entanto, um MFT não é necessário para atualizar a lista de tipos disponíveis dinamicamente. A única maneira garantida de testar se você pode definir um tipo de entrada específico é chamar IMFTransform::SetInputType.
Em alguns casos, um MFT não pode retornar uma lista de tipos de entrada até que um ou mais tipos de saída sejam definidos. Nesse caso, o método retorna MF_E_TRANSFORM_TYPE_NOT_SET.
Um MFT não é necessário para implementar esse método. No entanto, a maioria dos MFTs deve implementar esse método, a menos que os tipos com suporte sejam simples e possam ser descobertos por meio da função MFTGetInfo .
Se MFT_UNIQUE_METHOD_NAMES for definido antes de incluir mftransform.h, esse método será renomeado MFTGetInputAvailableType. Consulte Criando objetos DMO/MFT híbridos.
Para codificadores, depois que o tipo de saída é definido, GetInputAvailableType deve retornar uma lista de tipos de entrada compatíveis com o tipo de saída atual. Isso significa que todos os tipos retornados por GetInputAvailableType após o tipo de saída ser definido devem ser tipos válidos para SetInputType.
Os codificadores devem rejeitar tipos de entrada se os atributos do tipo de mídia de entrada e do tipo de mídia de saída não corresponderem, como configuração de resolução com MF_MT_FRAME_SIZE, configuração de intervalo nominal com MF_MT_VIDEO_NOMINAL_RANGE ou configuração de taxa de quadros com MF_MT_FRAME_SIZE
Notas de implementação
Se o MFT armazenar um tipo de mídia internamente, o MFT deverá retornar um clone do tipo de mídia, não um ponteiro para o tipo original. Caso contrário, o chamador poderá modificar o tipo e alterar o estado interno do MFT.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
Comentários
https://aka.ms/ContentUserFeedback.
Em breve: Ao longo de 2024, eliminaremos os problemas do GitHub como o mecanismo de comentários para conteúdo e o substituiremos por um novo sistema de comentários. Para obter mais informações, consulteEnviar e exibir comentários de