Partager via


Mode fenêtré (compatibilité) 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 in Media Foundation. Ces fonctionnalités ont été optimisées pour Windows 10 et Windows 11. Microsoft recommande vivement que le nouveau code utilise MediaPlayer, IMFMediaEngine et Audio/Video Capture dans Media Foundation au lieu de DirectShow, si 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.]

Le VMR est conçu pour être compatible avec toutes les applications DirectShow existantes. Lorsqu’il est utilisé avec une application existante, le VMR fonctionne en mode fenêtré avec un seul flux vidéo, également appelé mode de compatibilité. Ce mode est fourni, car VMR-7 est le convertisseur par défaut sur Windows XP et est donc automatiquement utilisé dans les appels aux méthodes Intelligent Connect telles que IGraphBuilder::RenderFile. Si votre application utilise Intelligent Connect et nécessite uniquement des fonctionnalités de rendu de base, vous n’avez pas besoin de code spécial pour effectuer un rendu correct avec VMR-7 sur Windows XP.

VmR-9 s’exécute également en mode fenêtré/de compatibilité par défaut. Toutefois, le VMR-9 n’est jamais le convertisseur vidéo par défaut. Pour utiliser vmR-9 dans une application, vous devez l’ajouter explicitement au graphique de filtre. Pour cette raison, et étant donné que le mode sans fenêtre offre de meilleures fonctionnalités que le mode fenêtré, il n’y a aucun avantage particulier à utiliser vmR-9 en mode fenêtré/de compatibilité.

Utilisation de VMR-7 en mode fenêtré/de compatibilité

Aucune programmation spéciale n’est nécessaire pour configurer ou contrôler le VMR-7 en mode fenêtré/de compatibilité. Créez simplement le graphe de filtre à l’aide des appels de génération de graphiques standard, et vmR-7 sera défini par défaut sur ce mode.

En mode fenêtré/compatibilité, vmR-7 crée sa propre fenêtre pour afficher la vidéo. Pour ce faire, il charge le composant Gestionnaire de fenêtres, qui expose les interfaces IVideoWindow et IBasicVideo . Votre application peut interroger le Gestionnaire de graphes de filtre pour ces interfaces, exactement comme vous le feriez avec l’ancien filtre Video Renderer. Pour plus d’informations, consultez Utilisation du mode fenêtré.

L’illustration suivante montre le VMR-7 en mode fenêtré/compatibilité.

vmr en mode de compatibilité

Pour garantir le niveau de compatibilité maximal, la fenêtre vidéo a le même nom de classe que celui créé par l’ancien filtre du convertisseur vidéo, et la plupart du code du Gestionnaire de fenêtres de l’ancien convertisseur vidéo est toujours utilisé par le VMR. En mode fenêtré/compatibilité, le VMR ne consomme pas plus de ressources système que l’ancien convertisseur vidéo. Étant donné que le VMR-7 n’a qu’un seul flux d’entrée en mode fenêtré/de compatibilité, il ne charge pas ses composants de mélangeur ou de compositeur.

Par défaut, le VMR étire l’image pour remplir la fenêtre vidéo. Pour conserver les proportions de la source, appelez la méthode IVMRAspectRatioControl::SetAspectRatioMode avec l’indicateur VMR_ARMODE_LETTER_BOX.

Notes

Les applications MFC qui placent la fenêtre vidéo dans une fenêtre enfant doivent définir un gestionnaire de messages WM_ERASEBKGND vide, sinon la zone d’affichage vidéo ne repeint pas correctement.

 

Utilisation de VMR-7 en mode fenêtré/compatibilité avec plusieurs flux

En mode fenêtré/de compatibilité, vmR-7 crée une seule broche d’entrée par défaut et désactive le mode mixage. Pour activer le mode mixage, vous devez configurer le VMR avant de le connecter. Pour plus d’informations, consultez VMR avec plusieurs flux (mode mixage). En mode mixage, le VMR charge les composants de mixage et de compositeur, ce qui nécessite davantage de ressources système.

Utilisation de VMR-9 en mode fenêtré

Étant donné que VMR-9 n’est pas le convertisseur par défaut, il n’a pas de mode de compatibilité en tant que tel. Au lieu de cela, vmR-9 utilise par défaut le mode fenêtré avec quatre broches d’entrée. Vous pouvez utiliser ce mode pour combiner jusqu’à quatre flux vidéo. Si vous devez combiner un plus grand nombre de flux, vous devez le configurer comme décrit dans VMR avec plusieurs flux (mode mélange). Sinon, le VMR-9 en mode fenêtré se comporte exactement comme le VMR-7 en mode fenêtré/de compatibilité.