Betriebskorrespondenz mit Bewegungsausgleichsgerätetreiber
Dieser Abschnitt enthält eine Beschreibung der Treiberseite des Motion Compensation-Geräts der DirectX VA-Schnittstelle. (Referenz:Windows 2000 DDK – Grafiktreiber – Entwurfshandbuch – 3.0 DirectDraw DDI – 3.12 Motion Compensation. Die Dokumentation zu den Strukturen in Fettschrift finden Sie im 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 DdMoCompCreate des Gerätetreibers verwendet, um den Treiber zu benachrichtigen, dass der Softwaredecoder ein Videobeschleunigungsobjekt verwendet.
- GuiDs, die von IAMVideoAccelerator::GetVideoAcceleratorGUIDs empfangen werden, stammen von den DdMoCompGetGUIDs des Gerätetreibers.
- Ein Aufruf des IAMVideoAccelerator::GetUncompFormatsSupported des Downstreameingabepins gibt Daten aus DdMoCompGetFormats des Gerätetreibers zurück.
- Die DXVA _ ConnectMode-Datenstruktur aus dem IAMVideoAcceleratorNotify::GetCreateVideoAcceleratorData des Decoders wird an DdMoCompCreate des Gerätetreibers übergeben.
- Die von IAMVideoAccelerator::GetCompBufferInfo zurückgegebenen Daten stammen aus DdMoCompGetBuffInfo des Gerätetreibers.
- Puffer, die mit IAMVideoAccelerator::Execute gesendet werden, werden vom DdMoCompRender des Gerätetreibers empfangen.
- Die Verwendung von IAMVideoAccelerator::QueryRenderStatus ruft den DdMoCompQueryStatus des Gerätetreibers auf. Ein Rückgabecode von DDERR _ WASBATDRAWING aus DdMoCompQueryStatus wird vom Hostdecode als Rückgabecode von E _ PENDING von IAMVideoAccelerator::QueryRenderStatus angezeigt.
- Daten, die an IAMVideoAccelerator::BeginFrame gesendet werden, werden vom DdMoCompBeginFrame des Gerätetreibers empfangen. Der Rückgabecode E _ PENDING wird von DdMoCompBeginFrame benötigt, damit E _ PENDING vom Hostdecoder als Antwort auf IAMVideoAccelerator::BeginFrame erkannt wird.
- Daten, die an IAMVideoAccelerator::EndFrame gesendet werden, werden vom DdMoCompEndFrame des Gerätetreibers empfangen.
- Am Ende der relevanten Verarbeitung wird DdMoCompDestroy des Gerätetreibers verwendet, um den Treiber zu benachrichtigen, dass das aktuelle Videobeschleunigungsobjekt nicht mehr verwendet wird, sodass der Treiber alle erforderlichen Bereinigungen durchführen kann.