Processador de vídeo MFT
O processador de vídeo MFT é uma MFT (transformações do Media Foundation) que executa conversão de espaço de cores, redimensionamento de vídeo, desentrelaçamento, conversão de taxa de quadros, rotação, recorte, descompactação espacial de visualizações esquerda e direita e espelhamento.
CLSID
CLSID_VideoProcessorMFT
Interfaces
Formatos de entrada
- MFVideoFormat_ARGB32
- MFVideoFormat_AYUV
- MFVideoFormat_I420
- MFVideoFormat_IYUV
- MFVideoFormat_NV11
- MFVideoFormat_NV12
- MFVideoFormat_RGB24
- MFVideoFormat_RGB32
- MFVideoFormat_RGB555
- MFVideoFormat_RGB565
- MFVideoFormat_RGB8
- MFVideoFormat_UYVY
- MFVideoFormat_v410
- MFVideoFormat_Y216
- MFVideoFormat_Y41P
- MFVideoFormat_Y41T
- MFVideoFormat_Y42T
- MFVideoFormat_YUY2
- MFVideoFormat_YV12
- MFVideoFormat_YVYU
Formatos de saída
- MFVideoFormat_ARGB32
- MFVideoFormat_AYUV
- MFVideoFormat_I420
- MFVideoFormat_IYUV
- MFVideoFormat_NV12
- MFVideoFormat_RGB24
- MFVideoFormat_RGB32
- MFVideoFormat_RGB555
- MFVideoFormat_RGB565
- MFVideoFormat_UYVY
- MFVideoFormat_Y216
- MFVideoFormat_YUY2
- MFVideoFormat_YV12
Nem todas as combinações de formatos de entrada e saída têm suporte. Para testar se há suporte para uma conversão, defina o tipo de entrada e chame IMFTransform::GetOutputAvailableType.
Para obter mais informações sobre esses formatos, consulte GUIDs de subtipo de vídeo.
Comentários
Uma instância do processador de vídeo pode ser criada de uma das seguintes maneiras:
- Chamando MFTEnumEx. O processador de vídeo é registrado na categoria MFT_CATEGORY_VIDEO_PROCESSOR.
- Chamando a função COM CoCreateInstance passando o CLSID CLSID_VideoProcessorMFT.
As observações a seguir referem-se ao trabalho com retângulos de origem e de destino no Processador de Vídeo MFT. Os retângulos de origem e de destino são definidos com IMFVideoProcessorControl::SetDestinationRectangle e SetSourceRectangle e, às vezes, com IMFMediaEngineEx::UpdateVideoStream.
- O retângulo de origem deve ser alinhado e arredondado para corresponder aos requisitos do formato de cor do quadro inserido no processador de vídeo. Isso é importante porque formatos como 420 e 422 têm requisitos sobre as dimensões e deslocamentos que podem ser criados e acessados. Por exemplo, um retângulo de origem de {1, 0, 319, 240} (esquerda, superior, direita, inferior) será arredondado para {2, 0, 320, 240} quando o formato de entrada for 420.
- Tanto o retângulo de destino quanto o retângulo de origem serão sempre ajustados para caber dentro de seus respectivos quadros – o retângulo de origem no quadro de origem e o retângulo de destino no quadro de destino. Isso significa que os valores negativos não são significativos. Eles serão sempre fixados em 0.
- O retângulo de origem está no sistema de coordenadas do quadro de destino, menos qualquer retângulo de destino. Isso significa que transformações como a rotação serão "desfeitas" no retângulo de origem. Portanto, você não precisa saber se o vídeo foi girado ou descompactado em 3D. Por exemplo, você pode desenhar um retângulo em cima da marca de vídeo, pegar as coordenadas relativas (em relação à marca de vídeo), normalizá-las (no intervalo de 0 a 1) e passá-las como o retângulo de origem, e elas devem funcionar conforme o esperado, mesmo que o vídeo estiver sendo rotacionado.
O processador de vídeo dá suporte ao processamento de vídeo acelerado por GPU, usando o Microsoft Direct3D 11. Para obter mais informações, consulte MF_SA_D3D11_AWARE.
Vídeo estereoscópico
O processador de vídeo dá suporte à operação de descompactação de visualização em quadros de vídeo 3D:
Se o quadro de entrada contiver dois modos de visualização compactados no mesmo quadro, o processador de vídeo poderá dividi-las em buffers separados ou extrair a visualização base e descartar a segunda visualização. Para habilitar a descompactação da exibição, defina o atributo MF_ENABLE_3DVIDEO_OUTPUT como MF3DVideoOutputType_Stereo ou MF3DVideoOutputType_BaseView.
Requisitos
Requisito | Valor |
---|---|
Cabeçalho |
|
Confira também