Convertisseur vidéo amélioré

Le convertisseur vidéo amélioré (EVR) est un composant qui affiche la vidéo sur le moniteur de l’utilisateur. Deux versions de l’EVR existent :

  • Récepteur multimédia EVR pour les applications Media Foundation.
  • Filtre EVR, pour les applications DirectShow.

Les deux versions utilisent les mêmes objets internes pour restituer la vidéo et partagent plusieurs des mêmes interfaces.

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

Le pilote graphique 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 interlacé sans alpha par pixel (par exemple NV12 ou YUY2); ou RVB progressif.
  • Sous-flux : YUV progressif avec par pixel-alpha, comme 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 négociation de type multimédia EVR.

En interne, l’EVR utilise un objet appelé mélangeur pour compositer les images des flux d’entrée sur une surface pour le rendu. Le mélangeur effectue également une correction de couleur et de déinterlacation. La sortie du mélangeur est la trame vidéo composite finale. Un deuxième objet appelé présentateur affiche l’image vidéo sur l’affichage. Le présentateur planifie quand les images sont affichées 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 nouveaux cadres, le mélangeur les conserve. Lorsque le flux de référence reçoit un nouveau cadre, les composites de mélangeur qui cadrent avec les trames de sous-flux. (Si le flux de référence est interlacé, un cadre de référence complet peut nécessiter plusieurs exemples multimédias.) Il est possible qu’un sous-flux reçoive plusieurs images pendant que le mélangeur attend un cadre de référence. Dans ce cas, le mélangeur ignore simplement le cadre de sous-flux précédent.

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

architectural diagram showing the evr.

EVR Interfaces

L’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 décrit 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 Active un plug-in EVR pour afficher la vidéo protégée.
IMFDesiredSample Permet au présentateur EVR de demander un cadre 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 présentateur personnalisé d’obtenir des pointeurs d’interface à partir de l’EVR.
IMFVideoDeviceID Retourne l’identificateur de l’appareil d’un mélangeur ou d’un présentateur EVR.
IMFVideoDisplayControl Contrôle la façon dont l’EVR affiche la vidéo.
IMFVideoMixerBitmap Alpha fusionne une image bitmap statique avec la vidéo.
IMFVideoMixerControl Contrôle la façon dont le renderer vidéo amélioré (EVR) mélange des sous-flux vidéo.
IMFVideoMixerControl2 Contrôle les préférences de déinterlacation vidéo.
IMFVideoPositionMapper Cartes 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, notamment l’ajustement, les filtres de bruit et les filtres de détails.
IMFVideoRenderer Définit un mélangeur ou un présentateur sur l’EVR.
IMFVideoSampleAllocator Alloue des exemples vidéo.

 

Dans cette section

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

 

Lecture audio/vidéo