MFT de estabilização de vídeo

A MFT (estabilização de vídeo) é uma MFT (transformação do Microsoft Media Foundation) que executa a estabilização de imagem em um fluxo de vídeo.

CLSID

CLSID_CMSVideoDSPMFT

Interfaces

Formatos de entrada

As combinações de tipo de mídia de entrada e subtipo aceitas pelo MFT de estabilização de vídeo para vídeo descompactado são:

  • MEDIATYPE_VIDEO
  • MEDIASUBTYPE_NV12
  • MEDIASUBTYPE_YUY2

Formatos de saída

As combinações de tipo de mídia de saída e subtipo aceitas pelo MFT de estabilização de vídeo são:

  • MEDIATYPE_VIDEO
  • MEDIASUBTYPE_NV12

O tipo de mídia de entrada deve ser definido antes do tipo de mídia de saída. Na maioria das situações, o suporte ao formato limitado não é um problema porque o pipeline insere automaticamente as conversões de cores necessárias.

O componente MFT de estabilização de vídeo é capaz de alterar o formato dinâmico quando a entrada é alterada. Quando o tamanho da imagem de entrada for alterado ou o subtipo for alterado, ele disparará uma alteração de formato dinâmico no fluxo de saída.

A MFT de estabilização de vídeo fará a conversão de cores nos seguintes casos:

  • Quando o formato de entrada é MEDIASUBTYPE_YUY2.
  • Quando o modo de compatibilidade do Microsoft DirectX 9.0 é usado.

Atributos

Os atributos a seguir têm suporte da MFT de estabilização de vídeo por meio da interface IMFAttributes .

  • O atributo MF_VIDEODSP_MODE coloca o MFT de estabilização de vídeo no modo de estabilização ou de passagem. O aplicativo deve chamar IMFAttributes::SetUINT32 no guid MF_VIDEODSP_TYPE com um inteiro correspondente a um dos seguintes valores válidos: MFVideoDSPMode_Stabilization = 4, MFVideoDSPMode_Passthrough = 1. MF_VIDEODSP_MODE pode ser alterado a qualquer momento durante a reprodução. Isso causa uma alteração no modo dinâmico. A saída mudará para estabilizada ou passará após 16 ou 2 quadros (dependendo do modo de latência) depois que o atributo for alterado.
  • O atributo MF_LOW_LATENCY coloca o MFT de estabilização de vídeo em modo de baixa latência ou de alta qualidade. O aplicativo deve chamar IMFAttributes::SetUINT32 no guid MF_LOW_LATENCY com um inteiro correspondente a um dos seguintes valores válidos: Baixa latência = 1 Alta Qualidade = 0
  • O atributo MF_SA_D3D11_BINDFLAGS é usado pelo pipeline para especificar os sinalizadores de associação D3D11 com os quais criar os exemplos de saída. Qualquer combinação de valores da enumeração D3D11_BIND_FLAG é válida.
  • O atributo MF_SA_MINIMUM_OUTPUT_SAMPLE_COUNT é usado pelo pipeline para especificar o número mínimo de amostras que esse componente deve dar suporte na saída.
  • O atributo MFSampleExtension_VideoDSPMode é definido em cada amostra produzida pela estabilização para indicar o MF_VIDEODSP_MODE efetivo aplicado a essa amostra (se a amostra foi estabilizada ou não). Em determinadas condições, os exemplos podem não ser estabilizados (devido à alta carga do sistema ou às solicitações do usuário). Esse atributo tem os mesmos valores que o atributo MF_VIDEODSP_MODE (MFVideoDSPMode_Stabilization e MFVideoDSPMode_Passthrough). Para obter o valor desse atributo, os aplicativos devem chamar IMFAttributes::SetUINT32 no guid MFSampleExtension_VideoDSPMode.

Comentários

Uma instância do DSP de estabilização de vídeo pode ser criada de uma das seguintes maneiras:

  • Chamando MFTEnumEx. O DSP de estabilização de vídeo é registrado na categoria MFT_CATEGORY_VIDEO_EFFECT .
  • Chamando a função COM CoCreateInstance passando-a para a CLSID_CMSVideoDSPMFT CLSID. Para usar esse método, você deve incluir wmcodecdsp.h e vincular a wmcodecdspuuid.lib.

Além disso, o DSP de estabilização de vídeo dá suporte à instanciação usando Windows Runtime como uma Extensão do Windows Media. Ele é definido em Windows.Media.VideoEffects e seu nome completo é "Windows.Media.VideoEffects.VideoStabilization".

Requisitos

Requisito Valor
parâmetro
Camerauicontrol.h

Confira também

Processadores de sinal digital

Windows.Media.VideoEffects