Mapeamento de coordenadas na VMR
[O recurso associado a esta página, DirectShow, é um recurso herdado. Ele foi substituído por MediaPlayer, IMFMediaEngine e Captura de Áudio/Vídeo na Media Foundation. Esses recursos foram otimizados para Windows 10 e Windows 11. A Microsoft recomenda fortemente que o novo código use MediaPlayer, IMFMediaEngine e Captura de Áudio/Vídeo no Media Foundation em vez de DirectShow, quando possível. A Microsoft sugere que o código existente que usa as APIs herdadas seja reescrito para usar as novas APIs, se possível.]
Esta seção descreve as cinco transformações aplicadas a uma imagem de origem antes que ela seja mapeada pela VMR para a imagem de saída final.
- A transformação T(Src) mapeia o retângulo de origem para o retângulo de destino. Eles são especificados pelos membros rcSource e rcTarget da estrutura VIDEOINFOHEADER ou VIDEOINFOHEADER2 no tipo de mídia. Esse mapeamento pré-processa a imagem de origem conforme ela passa para a VMR.
- A transformação T(Flag) executa todas as manipulações de imagem especificadas por sinalizadores no exemplo de mídia. Elas incluíam transformações como a tradução vertical e a escala para acomodar os sinalizadores de entrelaçamento bob. A transformação de entrelaçamento dobra a altura da imagem e possivelmente converte a imagem pela metade de uma linha de vídeo se ela estiver no campo ímpar.
- A transformação T(AR) ajusta a imagem para pixels quadrados, com base na taxa de proporção da imagem. Para tipos de mídia VIDEOINFOHEADER , a taxa de proporção é determinada pelo tamanho da imagem. Para tipos VIDEOINFOHEADER2 , a taxa de proporção é determinada pelos campos dwPictAspectRatioX e dwPictAspectRatioY , a menos que os sinalizadores AMCONTROL_PAD_TO_16x9 ou AMCONTROL_PAD_TO_4x3 sejam definidos. Essa transformação pressupõe que a configuração de exibição do monitor corresponde à taxa de proporção física do monitor. Por exemplo, se o usuário tiver um monitor com proporção 4 x 3, mas definir a exibição como 1280 x 768 pixels (5 x 3), a imagem não terá a taxa de proporção correta.
- A transformação T(Mix) transforma a imagem dentro da imagem de destino, usando os retângulos normalizados especificados nos métodos IVMRMixerControl . Os retângulos normalizados permitem que o aplicativo organize como os fluxos de origem são posicionados e dimensionados em relação uns aos outros. A VMR calcula a imagem de destino calculando as dimensões máximas de todas as imagens de origem e centralizando cada uma dentro de um retângulo delimitador geral. Os cantos do retângulo delimitador recebem o intervalo (0,0) a (1,1). O retângulo delimitador é corrigido antes que o grafo seja executado e permaneça constante mesmo se os fluxos forem adicionados ou excluídos. Retângulos de destino para cada fluxo podem ficar fora do intervalo (0,0) a (1,1) e ainda ser válidos.
- Por fim, uma parte da imagem mista pode ser transformada pelo T(Dst) de mapeamento, especificado pelos retângulos de origem e destino na interface IBasicVideo na VMR. Se o Allocator-Presenter for substituído e a interface IBasicVideo não for usada, o aplicativo deverá implementar a interface IVMRWindowlessControl e mapear as coordenadas de volta para um espaço linear 2D. As coordenadas do mouse retornadas para o navegador de DVD também devem estar nesse espaço. Por exemplo, se um aplicativo renderizar o vídeo em um cubo giratório, ele relatará toda a exibição do controle sem janelas e retornará as coordenadas do mouse em relação à exibição.
A transformação geral da imagem dos dados de origem para o renderizador final é:
T = T(Src)* T(Flag)T(Ar)T(Mix)* T(Dst)*
em que * indica que a imagem pode ser recortada para a imagem de destino nesse estágio. Observe que todas essas são transformações afins, de modo que a VMR pode combiná-las em uma única transformação.
O inverso da transformação é:
O fator T(Src) T(Flag) T(Ar) é relativo à resolução de origem. No fator T(Mix), o retângulo de origem normalizado é relativo à imagem corrigida pelo aspecto. O retângulo de destino normalizado é relativo à resolução de saída. O diagrama a seguir mostra essas relações.
Tópicos relacionados