Convertisseur vidéo amélioré

Le convertisseur vidéo amélioré (EVR) est un composant qui affiche la vidéo sur l’écran de l’utilisateur. Il existe deux versions du EVR :

  • Récepteur multimédia EVR pour les applications Media Foundation.
  • Le filtre EVR pour les applications DirectShow.

Les deux versions utilisent les mêmes objets internes pour effectuer le rendu de la vidéo, et elles partagent un grand nombre des mêmes interfaces.

Le EVR peut combiner jusqu’à 16 flux vidéo. Le premier flux d’entrée est appelé le flux de référence. Le flux de référence apparaît toujours en premier dans l’ordre de plan. Tous les flux supplémentaires sont appelés des sous- flux et sont mélangés au-dessus du flux de référence. L’application peut modifier l’ordre de plan des sous-flux, mais aucun sous-flux ne peut être d’abord dans l’ordre de plan.

Le pilote Graphics détermine les formats vidéo pris en charge, mais ils sont généralement limités aux éléments suivants :

  • Flux de référence : YUV progressif ou entrelacé, sans alpha par pixel (comme NV12 ou YUY2); ou RGB progressif.
  • Sous-flux : YUV progressifs avec par pixel-alpha, tels que AYUV ou AI44.

Les formats de sous-flux disponibles peuvent dépendre du format du flux de référence. Pour plus d’informations, consultez EVR Media type Negotiation.

En interne, EVR utilise un objet appelé mixer pour combiner les frames des flux d’entrée sur une surface de rendu. Le mélangeur effectue également une correction de désentrelacement et de couleur. La sortie du mélangeur est la dernière image vidéo composite. Un deuxième objet appelé le présentateur restitue le cadre vidéo à l’affichage. Le présentateur planifie le rendu des frames et gère l’appareil Direct3D. Une application peut fournir une implémentation personnalisée du mélangeur ou du présentateur.

La fréquence d’images de sortie est verrouillée dans le flux de référence. Chaque fois que les sous-flux reçoivent de nouvelles images, le mélangeur les conserve. Lorsque le flux de référence reçoit un nouveau Frame, le mixer composite ce frame avec les frames de sous-flux. (Si le flux de référence est entrelacé, une trame de référence complète peut nécessiter plusieurs exemples de supports.) Il est possible qu’un sous-flux reçoive plusieurs frames alors que le mixer attend un frame de référence. Dans ce cas, le mélangeur ignore simplement le frame de sous-flux précédent.

Étant donné que le présentateur crée le périphérique Direct3D, il est également chargé de partager l’appareil avec d’autres objets de pipeline qui doivent accéder aux services d’accélération vidéo DirectX (DXVA). En particulier, le mélangeur EVR utilise les services de traitement vidéo DXVA pour désentrelacer et mélanger la vidéo. Externe au EVR, les décodeurs logiciels peuvent utiliser DXVA pour le décodage vidéo accéléré. Le présentateur partage le périphérique Direct3D au moyen du Gestionnaire de périphériques Direct3D. Le diagramme suivant illustre l’architecture interne de EVR. (Le décodeur logiciel, ombré en gris, ne fait pas partie du EVR.)

diagramme architectural montrant le EVR.

Interfaces EVR

Le EVR prend en charge les interfaces suivantes. Certaines de ces interfaces sont implémentées par le mélangeur ou le présentateur. Pour chaque interface, la rubrique de référence explique comment obtenir un pointeur vers l’interface.

Interface Description
IEVRFilterConfig Définit le nombre de broches d’entrée sur le filtre EVR (DirectShow uniquement).
IEVRFilterConfigEx Configure le filtre EVR (DirectShow uniquement).
IEVRTrustedVideoPlugin Permet à un plug-in EVR de restituer une vidéo protégée.
IMFDesiredSample Permet au présentateur EVR de demander un frame spécifique à partir du mélangeur.
IMFQualityAdvise Permet au gestionnaire de qualité d’ajuster la qualité vidéo EVR.
IMFTopologyServiceLookup Permet à un mélangeur ou un présentateur personnalisé d’obtenir des pointeurs d’interface à partir du EVR.
IMFVideoDeviceID Retourne l’identificateur d’appareil d’un mélangeur ou d’un présentateur EVR.
IMFVideoDisplayControl Contrôle la façon dont le EVR affiche la vidéo.
IMFVideoMixerBitmap Alpha-fusionne une image bitmap statique avec la vidéo.
IMFVideoMixerControl Contrôle la façon dont le convertisseur de vidéo amélioré (EVR) mixe les sous-flux vidéo.
IMFVideoMixerControl2 Contrôle les préférences pour le désentrelacement vidéo.
IMFVideoPositionMapper Mappe une position sur un flux vidéo d’entrée à la position correspondante sur un flux vidéo de sortie.
IMFVideoPresenter Exposé par le présentateur EVR.
IMFVideoProcessor Contrôle le traitement vidéo, y compris les réglages, les filtres de bruit et les filtres de détails.
IMFVideoRenderer Définit un mélangeur ou un présentateur sur le EVR.
IMFVideoSampleAllocator Alloue des exemples vidéo.

Dans cette section

Rubrique Description
Utilisation du filtre DirectShow EVR Comment utiliser EVR dans une application DirectShow.
Utilisation du récepteur multimédia EVR Comment utiliser EVR dans une application Media Foundation.
Utilisation des contrôles d’affichage vidéo Comment contrôler la façon dont le EVR affiche la vidéo dans la fenêtre d’application.
Utilisation des contrôles Video Mixer Comment contrôler la façon dont le mélangeur EVR fonctionne.
Négociation de type de média EVR Décrit comment le EVR détermine les formats vidéo qu’il peut accepter comme entrée.
Mélangeurs personnalisés Comment écrire un mélangeur personnalisé pour EVR.
Comment écrire un présentateur EVR Comment écrire un présentateur personnalisé pour EVR.

Lecture audio/vidéo