Pilote MSDV
[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.]
MSDV est le pilote WDM (Microsoft Windows Driver Model) pour les caméscopes DV. Le pilote apparaît sous la forme d’un filtre DirectShow lorsque l’appareil est branché. Il est énuméré en deux catégories de filtres :
- CLSID_VideoInputDeviceCategory (« Sources de capture vidéo »)
- AM_KSCATEGORY_RENDER (« Appareils de rendu de streaming WDM »)
Le nom convivial du filtre est Microsoft DV Camera and VCR
, ou un équivalent localisé. Dans certains appareils, la propriété Description contient une description du modèle spécifique, qui peut être utilisée à la place du nom convivial générique. Pour plus d’informations, consultez Sélection d’un appareil de capture.
MSDV a deux broches de sortie. Une broche fournit des images DV qui contiennent des données audio et vidéo entrelacées. L’autre broche fournit des images vidéo uniquement sans audio. MSDV ne peut pas diffuser en continu à partir des deux broches à la fois, de sorte qu’une seule broche de sortie peut être connectée à la fois. Pour plus d’informations sur la capture de vidéo à partir d’un appareil DV, consultez Capturer DV vers fichier.
La plupart des caméscopes DV ont une sous-unité de magnétoscope (VTR), qui peut transmettre des données de la bande à l’ordinateur. Pour l’application, la capture à partir d’une bande fonctionne de la même façon que la capture vidéo en direct. La seule différence est que l’application doit contrôler le transport de bande externe (démarrer et arrêter la bande, rembobiner, etc.). À cet effet, MSDV expose les interfaces IAMExtDevice, IAMExtTransport et IAMTimecodeReader . Pour plus d’informations sur le contrôle d’un VTR, consultez Contrôle d’un caméscope DV.
Vous pouvez également transmettre DV de l’ordinateur au caméscope. La vidéo peut ensuite être visionnée dans l’écran d’intégration du caméscope ou enregistrée sur bande. Pour prendre en charge cette fonctionnalité, MSDV dispose d’une broche d’entrée qui peut recevoir un flux DV entrelacé. Lorsque la broche d’entrée est connectée, MSDV agit comme un filtre de rendu au lieu d’un filtre de capture. MSDV ne prend pas en charge la recherche dans ce mode. Pour plus d’informations sur l’envoi de DV à l’appareil, consultez Transmettre DV à partir d’un fichier à une bande.
Notez que les broches d’entrée et de sortie ne peuvent pas être connectées en même temps, car l’appareil ne peut pas diffuser en continu dans les deux sens en même temps.
Dans de nombreux caméscopes, le basculement entre le mode VTR et le mode caméra entraîne l’arrêt de l’appareil. Par conséquent, DirectShow peut perdre l’appareil lorsque l’utilisateur change de mode. Pour plus d’informations sur les événements de suppression d’appareil, consultez Notification de suppression d’appareil.
Notes
Pour plus d’informations sur les formats DV pris en charge par le pilote MSDV, consultez Sous-types vidéo DV.
Quelques conseils sur la création de graphiques de filtre avec MSDV :
Vous ne pouvez pas utiliser IGraphBuilder::Render pour afficher une broche de sortie sur MSDV. (Le Gestionnaire de graphes de filtre tente de connecter la broche de sortie à la broche d’entrée de MSDV, ce qui échoue.) Utilisez plutôt IGraphBuilder::Connect ou ICaptureGraphBuilder2::RenderStream.
Lorsqu’un graphe de filtre contient MSDV, MSDV doit fournir l’horloge de référence pour le graphe. À partir de DirectX 8.0, le Gestionnaire de graphes de filtre choisit automatiquement MSDV comme horloge de référence. Avec les versions antérieures, vous devez appeler la méthode IMediaFilter::SetSyncSource sur le Gestionnaire de graphes de filtre. Pour plus d’informations sur les horloges, consultez Heure et horloges dans DirectShow.
Selon l’appareil, certaines méthodes dans IAMExtDevice, IAMExtTransport et IAMTimeCodeReader peuvent retourner des codes d’erreur Windows au lieu de valeurs HRESULT . Les codes d’erreur possibles sont les suivants.
Code d'erreur Description ERROR_TIMEOUT Une commande d’appareil externe a expiré. ERROR_REQ_NOT_ACCEP L’appareil n’a pas accepté cette commande d’appareil externe. ERROR_NOT_SUPPORTED L’appareil ne prend pas en charge cette commande d’appareil externe. ERROR_REQUEST_ABORTED Une commande d’appareil externe a été abandonnée. L’appareil a peut-être été supprimé ou une réinitialisation du bus s’est produite.
Informations sur l'appareil
Dans Windows Millennium Edition et Windows XP, le moniker d’appareil du filtre DV prend en charge une propriété Description en plus de la propriété FriendlyName . Cette propriété retourne une description de l’appareil, extraite du fichier INF, qui contient généralement le nom de marque de l’appareil. Toutefois, cette propriété n’est pas prise en charge pour tous les modèles d’appareil.
Pour plus d’informations sur les monikers d’appareil, consultez Utilisation de l’énumérateur d’appareil système.
Heures d’horloge
Le pilote MSDV utilise l’horloge de bus 1394 contenue dans les paquets de données 1394 pour dériver l’horloge. Il utilise ces valeurs pour horodatage des exemples de média DV. Étant donné que cette horloge source n’est pas l’horloge du système d’ordinateur, les heures finissent par dériver de l’horloge du système de l’ordinateur. Comme indiqué ci-dessus, toutefois, par défaut, le Gestionnaire de graphe de filtre sélectionne MSDV comme horloge de référence de graphe.
L’interface IAMDroppedFrames signale la mesure actuelle du pilote des images supprimées ; cette valeur peut ne pas être parfaitement synchronisée avec le nombre réel d’images supprimées à un moment donné. Si les trames sont supprimées, cela indique que le système n’est pas équilibré (la production de données dépasse la consommation de données). Par exemple, le disque dur de l’utilisateur peut ne pas être assez rapide pour prendre en charge les taux de capture DV.
Rubriques connexes