MSDV-Treiber
[Das dieser Seite zugeordnete Feature DirectShow ist ein Legacyfeature. Es wurde durch MediaPlayer, IMFMediaEngine und Audio/Video Capture in Media Foundation ersetzt. Diese Features wurden für Windows 10 und Windows 11 optimiert. Microsoft empfiehlt dringend, dass neuer Code nach Möglichkeit MediaPlayer, IMFMediaEngine und Audio/Video Capture in Media Foundation anstelle von DirectShow verwendet. Microsoft schlägt vor, vorhandenen Code, der die Legacy-APIs verwendet, um nach Möglichkeit die neuen APIs zu verwenden.]
MSDV ist der Microsoft Windows Driver Model (WDM)-Treiber für DV-Camcorder. Der Treiber wird als DirectShow-Filter angezeigt, wenn das Gerät angeschlossen ist. Es wird in zwei Filterkategorien aufgelistet:
- CLSID_VideoInputDeviceCategory ("Videoaufnahmequellen")
- AM_KSCATEGORY_RENDER ("WDM-Streamingrendergeräte")
Der Anzeigename des Filters ist Microsoft DV Camera and VCR
oder eine lokalisierte Entsprechung. Auf einigen Geräten enthält die Description-Eigenschaft eine Beschreibung des spezifischen Modells, das anstelle des generischen Anzeigenamens verwendet werden kann. Weitere Informationen finden Sie unter Auswählen eines Erfassungsgeräts.
MSDV verfügt über zwei Ausgabestifte. Ein Pin liefert DV-Frames, die verschachtelte Audio- und Videodaten enthalten. Der andere Pin liefert nur Videoframes ohne Audio. MSDV kann nicht gleichzeitig von beiden Pins streamen, sodass jeweils nur ein Ausgabestift verbunden werden kann. Weitere Informationen zum Aufzeichnen von Videos von einem DV-Gerät finden Sie unter Erfassen von DV in Datei.
Die meisten DV-Camcorder verfügen über eine VTR-Untereinheit (Video Tape Recorder), die Daten vom Band an den Computer übertragen kann. Für die Anwendung funktioniert die Aufzeichnung von Band genauso wie die Aufnahme von Livevideos. Der einzige Unterschied besteht darin, dass die Anwendung den externen Bandtransport steuern muss – Starten und Beenden des Bandes, Zurückspulen usw. Zu diesem Zweck macht MSDV die Schnittstellen IAMExtDevice, IAMExtTransport und IAMTimecodeReader verfügbar. Weitere Informationen zum Steuern einer VTR finden Sie unter Steuern eines DV-Camcorders.
Sie können auch DV vom Computer auf den Camcorder übertragen. Das Video kann dann auf dem Onboard-Bildschirm des Camcorders angezeigt oder auf Band aufgezeichnet werden. Um diese Funktionalität zu unterstützen, verfügt MSDV über einen Eingabenadel, der einen verschachtelten DV-Stream empfangen kann. Wenn der Eingabenadel verbunden ist, fungiert MSDV als Rendererfilter anstelle eines Erfassungsfilters. MSDV unterstützt die Suche in diesem Modus nicht. Weitere Informationen zum Senden von DV an das Gerät finden Sie unter Übertragen von DV von Datei auf Band.
Beachten Sie, dass die Eingabe- und Ausgabepins nicht gleichzeitig verbunden werden können, da das Gerät nicht gleichzeitig in beide Richtungen streamen kann.
Bei vielen Camcordern schaltet sich das Gerät durch den Wechsel zwischen VTR-Modus und Kameramodus aus. Daher kann DirectShow das Gerät verlieren, wenn der Benutzer den Modus wechselt. Informationen zu Geräteentfernungsereignissen finden Sie unter Benachrichtigung zum Entfernen von Geräten.
Bemerkungen
Informationen dazu, welche DV-Formate vom MSDV-Treiber unterstützt werden, finden Sie unter DV-Videountertypen.
Einige Tipps zum Erstellen von Filterdiagrammen mit MSDV:
Sie können IGraphBuilder::Render nicht verwenden, um einen Ausgabepin auf MSDV zu rendern. (Der Filtergraph-Manager versucht, den Ausgabepin mit dem Eingabestift von MSDV zu verbinden, was fehlschlägt.) Verwenden Sie stattdessen IGraphBuilder::Connect oder ICaptureGraphBuilder2::RenderStream.
Wenn ein Filterdiagramm MSDV enthält, sollte MSDV die Referenzuhr für das Diagramm bereitstellen. Ab DirectX 8.0 wählt der Filter Graph-Manager automatisch MSDV als Referenzuhr aus. Bei früheren Versionen sollten Sie die IMediaFilter::SetSyncSource-Methode im Filter Graph-Manager aufrufen. Weitere Informationen zu Uhren finden Sie unter Zeit und Uhren in DirectShow.
Je nach Gerät können einige Methoden in IAMExtDevice, IAMExtTransport und IAMTimeCodeReader Windows-Fehlercodes anstelle von HRESULT-Werten zurückgeben. Mögliche Fehlercodes sind:
Fehlercode BESCHREIBUNG ERROR_TIMEOUT Bei einem externen Gerätebefehl ist ein Timeout aufgetreten. ERROR_REQ_NOT_ACCEP Das Gerät hat diesen externen Gerätebefehl nicht akzeptiert. ERROR_NOT_SUPPORTED Das Gerät unterstützt diesen externen Gerätebefehl nicht. ERROR_REQUEST_ABORTED Ein externer Gerätebefehl wurde abgebrochen. Möglicherweise wurde das Gerät entfernt oder es wurde eine Busrücksetzung durchgeführt.
Geräteinformationen
In Windows Millennium Edition und Windows XP unterstützt der Gerätemoniker des DV-Filters zusätzlich zur FriendlyName-Eigenschaft eine Description-Eigenschaft. Diese Eigenschaft gibt eine Beschreibung des Geräts aus der INF-Datei zurück, die normalerweise den Markennamen des Geräts enthält. Diese Eigenschaft wird jedoch nicht für alle Gerätemodelle unterstützt.
Weitere Informationen zu Gerätemonikern finden Sie unter Verwenden des Systemgeräte-Enumerators.
Uhrzeiten
Der MSDV-Treiber verwendet die 1394-Busuhr, die in den 1394-Datenpaketen enthalten ist, um die Uhr abzuleiten. Mit diesen Werten werden die DV-Medienbeispiele zeitstempelt. Da diese Quelluhr nicht die Computersystemuhr ist, werden die Zeiten schließlich von der Computersystemuhr abweichen. Wie oben erwähnt, wählt der Filter Graph Manager jedoch standardmäßig MSDV als Diagrammreferenzuhr aus.
Die IAMDroppedFrames-Schnittstelle meldet das aktuelle Maß für gelöschte Frames des Treibers. Dieser Wert ist möglicherweise nicht perfekt mit der tatsächlichen Anzahl der gelöschten Frames zu einem bestimmten Zeitpunkt synchronisiert. Wenn Frames gelöscht werden, bedeutet dies, dass das System nicht ausgeglichen ist (die Datenproduktion überschreitet den Datenverbrauch). Beispielsweise ist die Festplatte des Benutzers möglicherweise nicht schnell genug, um DV-Erfassungsraten zu unterstützen.
Zugehörige Themen