Freigeben über


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:

  1. 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.
  2. GUIDs, die von IAMVideoAccelerator::GetVideoAcceleratorGUIDs stammen aus der DdMoCompGetGUIDsdes Gerätetreibers.
  3. Ein Aufruf der nachgeschalteten Eingabenadels IAMVideoAccelerator::GetUncompFormatsSupported gibt Daten aus dem DdMoCompGetFormatsdes Gerätetreibers zurück.
  4. Die DXVA_ConnectMode Datenstruktur des Decoders IAMVideoAcceleratorNotify::GetCreateVideoAcceleratorData wird an die DdMoCompCreatedes Gerätetreibers übergeben.
  5. Von IAMVideoAccelerator::GetCompBufferInfo zurückgegebene Daten stammen aus dem DdMoCompGetBuffInfo-des Gerätetreibers.
  6. Puffer, die mit IAMVideoAccelerator::Execute gesendet werden, werden vom DdMoCompRenderdes Gerätetreibers empfangen.
  7. 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.
  8. 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.
  9. Daten, die an IAMVideoAccelerator::EndFrame gesendet werden, werden vom DdMoCompEndFramedes Gerätetreibers empfangen.
  10. 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.