Partager via


Mappage de coordonnées dans le VMR

[La fonctionnalité associée à cette page, DirectShow, est une fonctionnalité héritée. Il a été remplacé par MediaPlayer, IMFMediaEngine et Audio/Video Capture dans Media Foundation. Ces fonctionnalités ont été optimisées pour Windows 10 et Windows 11. Microsoft recommande vivement au nouveau code d’utiliser MediaPlayer, IMFMediaEngine et La capture audio/vidéo dans Media Foundation au lieu de DirectShow, lorsque cela est possible. Microsoft suggère que le code existant qui utilise les API héritées soit réécrit pour utiliser les nouvelles API si possible.]

Cette section décrit les cinq transformations appliquées à une image source avant qu’elle ne soit mappée par le VMR sur l’image de sortie finale.

  1. La transformation T(Src) mappe le rectangle source au rectangle de destination. Ceux-ci sont spécifiés par les membres rcSource et rcTarget de la structure VIDEOINFOHEADER ou VIDEOINFOHEADER2 dans le type de média. Ce mappage prétraite l’image source à mesure qu’elle passe au VMR.
  2. La transformation T(Flag) effectue toutes les manipulations d’image spécifiées par les indicateurs dans l’exemple multimédia. Il s’agit notamment de transformations telles que la traduction verticale et la mise à l’échelle pour prendre en charge les indicateurs d’entrelacs bob. La transformation entrelacé double la hauteur de l’image et peut traduire l’image par la moitié d’une ligne vidéo si elle se trouve dans le champ impair.
  3. La transformation T(AR) ajuste l’image en pixels carrés, en fonction du rapport d’aspect de l’image. Pour les types de médias VIDEOINFOHEADER , le rapport d’aspect est déterminé par la taille de l’image. Pour les types VIDEOINFOHEADER2 , le rapport d’aspect est déterminé par les champs dwPictAspectRatioX et dwPictAspectRatioY , sauf si les indicateurs AMCONTROL_PAD_TO_16x9 ou AMCONTROL_PAD_TO_4x3 sont définis. Cette transformation suppose que le paramètre d’affichage du moniteur correspond au rapport d’aspect physique du moniteur. Par exemple, si l’utilisateur dispose d’un moniteur avec un rapport d’aspect de 4 x 3, mais qu’il définit l’affichage sur 1280 x 768 pixels (5 x 3), l’image n’aura pas le rapport d’aspect correct.
  4. La transformation T(Mix) transforme positionne l’image dans l’image de destination, à l’aide des rectangles normalisés spécifiés dans les méthodes IVMRMixerControl . Les rectangles normalisés permettent à l’application d’organiser la façon dont les flux sources sont positionnés et mis à l’échelle les uns par rapport aux autres. Le VMR calcule l’image de destination en calculant les dimensions maximales de toutes les images sources et en centrant chacune à l’intérieur d’un rectangle englobant global. Les coins du rectangle englobant se voient attribuer la plage (0,0) à (1,1). Le rectangle englobant est fixe avant l’exécution du graphe et reste constant même si des flux sont ajoutés ou supprimés. Les rectangles de destination de chaque flux peuvent se trouver en dehors de la plage (0,0) à (1,1) et être toujours valides.
  5. Enfin, une partie de l’image mixte peut être transformée par le mappage T(Dst), spécifié par les rectangles source et de destination dans l’interface IBasicVideo sur le VMR. Si le Allocator-Presenter est remplacé et que l’interface IBasicVideo n’est pas utilisée, l’application doit implémenter l’interface IVMRWindowlessControl et mapper les coordonnées dans un espace linéaire 2D. Les coordonnées de la souris retournées au navigateur DVD doivent également se trouver dans cet espace. Par exemple, si une application restitue la vidéo sur un cube tournant, elle signale l’ensemble de l’affichage pour le contrôle sans fenêtre et retourne les coordonnées de la souris par rapport à l’affichage.

La transformation globale de l’image des données sources vers le convertisseur final est la suivante :

T = T(Src)* T(Flag)T(Ar)T(Mix)* T(Dst)*

où * indique que l’image peut être clippée à l’image de destination à ce stade. Notez que ce sont toutes des transformations affines, de sorte que le VMR peut les combiner en une seule transformation.

L’inverse de la transformation est :

transformation inverse

Le facteur T(Src) T(Flag) T(Ar) est relatif à la résolution source. Dans le facteur T(Mix), le rectangle source normalisé est relatif à l’image corrigée par aspect. Le rectangle de destination normalisé est relatif à la résolution de sortie. Le diagramme suivant montre ces relations.

Étapes de transformation d’image

Utilisation de VMR pour les développeurs de filtre DirectShow