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:

  1. Zu Beginn der relevanten Verarbeitung wird DdMoCompCreate des Gerätetreibers verwendet, um den Treiber zu benachrichtigen, dass der Softwaredecoder ein Videobeschleunigungsobjekt verwendet.
  2. GuiDs, die von IAMVideoAccelerator::GetVideoAcceleratorGUIDs empfangen werden, stammen von den DdMoCompGetGUIDs des Gerätetreibers.
  3. Ein Aufruf des IAMVideoAccelerator::GetUncompFormatsSupported des Downstreameingabepins gibt Daten aus DdMoCompGetFormats des Gerätetreibers zurück.
  4. Die DXVA _ ConnectMode-Datenstruktur aus dem IAMVideoAcceleratorNotify::GetCreateVideoAcceleratorData des Decoders wird an DdMoCompCreate des Gerätetreibers übergeben.
  5. Die von IAMVideoAccelerator::GetCompBufferInfo zurückgegebenen Daten stammen aus DdMoCompGetBuffInfo des Gerätetreibers.
  6. Puffer, die mit IAMVideoAccelerator::Execute gesendet werden, werden vom DdMoCompRender des Gerätetreibers empfangen.
  7. 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.
  8. 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.
  9. Daten, die an IAMVideoAccelerator::EndFrame gesendet werden, werden vom DdMoCompEndFrame des Gerätetreibers empfangen.
  10. 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.