Betriebskorrespondenz mit Dem Bewegungskompensationsgerätetreiber
[Das dieser Seite zugeordnete Feature DirectShow-ist ein Legacyfeature. Es wurde von MediaPlayer, IMFMediaEngineund Audio/Video Capture in Media Foundationersetzt. Diese Features wurden für Windows 10 und Windows 11 optimiert. Microsoft empfiehlt dringend, dass neuer Code MediaPlayer-, IMFMediaEngine und Audio-/Videoaufnahme in Media Foundation anstelle von DirectShow-verwendet, wenn möglich. Microsoft schlägt vor, dass vorhandener Code, der die Legacy-APIs verwendet, um die neuen APIs zu verwenden, falls möglich umgeschrieben werden.]
Dieser Abschnitt enthält eine Beschreibung der Motion Compensation-Gerätetreiberseite der DirectX VA-Schnittstelle. (Referenz:Windows 2000 DDK - Grafiktreiber - Entwurfshandbuch - 3.0 DirectDraw DDI - 3.12 Bewegungskorrektur. Eine Dokumentation zu den Strukturen in Boldface finden Sie in der Dokumentation zu Windows DDK.)
Die folgenden Elemente beziehen sich auf Einträge, auf die über die DD_MOTIONCOMPCALLBACKS-Struktur zugegriffen wird:
- Zu Beginn der relevanten Verarbeitung wird der DdMoCompCreate des Gerätetreibers verwendet, um den Treiber darüber zu informieren, dass der Softwaredecoder mit einem Videobeschleunigungsobjekt beginnt.
- GUIDs, die von IAMVideoAccelerator::GetVideoAcceleratorGUIDs stammen aus der DdMoCompGetGUIDsdes Gerätetreibers.
- Ein Aufruf der nachgeschalteten Eingabenadels IAMVideoAccelerator::GetUncompFormatsSupported gibt Daten aus dem DdMoCompGetFormatsdes Gerätetreibers zurück.
- Die DXVA_ConnectMode Datenstruktur des Decoders IAMVideoAcceleratorNotify::GetCreateVideoAcceleratorData wird an die DdMoCompCreatedes Gerätetreibers übergeben.
- Von IAMVideoAccelerator::GetCompBufferInfo zurückgegebene Daten stammen aus dem DdMoCompGetBuffInfo-des Gerätetreibers.
- Puffer, die mit IAMVideoAccelerator::Execute gesendet werden, werden vom DdMoCompRenderdes Gerätetreibers empfangen.
- Verwendung von IAMVideoAccelerator::QueryRenderStatus ruft die DdMoCompQueryStatusdes Gerätetreibers auf. Ein Rückgabecode von DDERR_WASSTILLDRAWING von DdMoCompQueryStatus wird vom Hostdecoder als Rückgabecode von E_PENDING aus IAMVideoAccelerator::QueryRenderStatusangezeigt.
- An IAMVideoAccelerator::BeginFrame gesendete Daten werden vom DdMoCompBeginFrame-des Gerätetreibers empfangen. Ein Rückgabecode von E_PENDING wird von DdMoCompBeginFrame benötigt, damit E_PENDING vom Hostdecoder als Reaktion auf IAMVideoAccelerator::BeginFrameangezeigt werden.
- Daten, die an IAMVideoAccelerator::EndFrame gesendet werden, werden vom DdMoCompEndFramedes Gerätetreibers empfangen.
- Am Ende der relevanten Verarbeitung wird der DdMoCompDestroy- des Gerätetreibers verwendet, um den Treiber darüber zu informieren, dass das aktuelle Videobeschleunigungsobjekt nicht mehr verwendet wird, sodass der Treiber eine erforderliche Bereinigung durchführen kann.