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.)
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. |
Rubriques connexes