Freigeben über


IDirectXVideoProcessor::VideoProcessBlt-Methode (dxva2api.h)

Führt einen Videoprozessvorgang für ein oder mehrere Eingabebeispiele aus und schreibt das Ergebnis auf eine Direct3D9-Oberfläche.

Syntax

HRESULT VideoProcessBlt(
  [in]  IDirect3DSurface9                 *pRenderTarget,
  [in]  const DXVA2_VideoProcessBltParams *pBltParams,
  [in]  const DXVA2_VideoSample           *pSamples,
  [in]  UINT                              NumSamples,
  [out] HANDLE                            *pHandleComplete
);

Parameter

[in] pRenderTarget

Ein Zeiger auf die IDirect3DSurface9-Schnittstelle einer Direct3D-Oberfläche. Die Ausgabe des Videoverarbeitungsvorgangs wird auf diese Oberfläche geschrieben. Die Oberfläche kann einer der folgenden Typen sein:

  • Eine Oberfläche, die durch Aufrufen von IDirectXVideoAccelerationService::CreateSurface mit dem flag DXVA2_VideoProcessRenderTarget erstellt wird. Sie können auch das flag DXVA2_VideoSoftwareRenderTarget verwenden, aber nur, wenn die Geräte-GUID DXVA2_VideoProcSoftwareDevice ist (Softwarevideoverarbeitungsgerät).
  • Eine Oberfläche, die von einem Direct3D-Gerät mit dem D3DUSAGE_RENDERTARGET-Verwendungsflag erstellt wurde.
  • Eine Direct3D-Swapchain.

[in] pBltParams

Ein Zeiger auf eine DXVA2_VideoProcessBltParams Struktur, die den auszuführenden Videoverarbeitungsvorgang beschreibt.

[in] pSamples

Ein Zeiger auf ein Array von DXVA2_VideoSample Strukturen, die die Eingabebeispiele enthalten. Das Array muss mindestens ein Element enthalten.

Die maximale Anzahl von Eingabebeispielen wird durch die konstante MAX_DEINTERLACE_SURFACES angegeben, die in der Headerdatei dxva2api.h definiert ist.

[in] NumSamples

Die Anzahl der Elemente im pSamples-Array .

[out] pHandleComplete

Reserviert; auf NULL festgelegt.

Rückgabewert

Die Methode gibt ein HRESULT zurück. Mögliches Werte (aber nicht die Einzigen) sind die in der folgenden Tabelle.

Rückgabecode BESCHREIBUNG
S_OK
Die Methode wurde erfolgreich ausgeführt.
D3DERR_DRIVERINTERNALERROR
Interner Treiberfehler.
E_INVALIDARG
Ungültige Argumente.

Hinweise

Wenn die Methode zurückgibt, ist der Vorgang möglicherweise nicht abgeschlossen.

Wenn die Methode E_INVALIDARG zurückgibt, überprüfen Sie Folgendes:

  • Die Anzahl der Eingabebeispiele (NumSamples) muss kleiner oder gleich MAX_DEINTERLACE_SURFACES sein.
  • Die Direct3D-Oberfläche muss ein gültiges Ziel für VideoProcessBlt sein. Weitere Informationen finden Sie in der Beschreibung des pRT-Parameters .
  • Die in pBltParams angegebene Präsentationszeit (TargetFrame) muss mit den Start- und Endzeiten für das aktuelle Bild aus dem primären Stream übereinstimmen. Insbesondere muss sie kleiner als die Endzeit und größer oder gleich der Startzeit sein. Beachten Sie, dass das erste Beispiel in pSamples möglicherweise nicht das aktuelle Bild ist, wenn das pSamples-Array Rückwärtsverweisbilder enthält. Weitere Informationen finden Sie unter Eingabebeispielreihenfolge.
  • Das in pBltParams angegebene Zielrechteck (TargetRect) darf nicht größer als die Zieloberfläche (pRT) sein.
  • Die in pBltParams angegebene Verengungsgröße (ConstrictionSize) darf nicht kleiner als 0 (null) oder größer als das Zielrechteck sein.
  • Die Alphakomponente der Hintergrundfarbe muss opqaue sein.
  • Die in pBltParams angegebenen ProcAmp-Werte müssen gültig sein. Für alle ProcAmp-Einstellungen, die vom Treiber unterstützt werden, müssen diese Werte in die Bereiche fallen, die von der IDirectXVideoProcessor::GetProcAmpRange-Methode zurückgegeben werden.
  • Die in pBltParams angegebenen Rausch- und Detailfilter müssen gültig sein. Für alle Filter, die vom Treiber unterstützt werden, müssen diese Werte in die Bereiche fallen, die von der IDirectXVideoProcessor::GetFilterPropertyRange-Methode zurückgegeben werden.
  • Der in pBltParams angegebene Alphawert muss sich im Bereich [0...1] einschließlich befinden.
  • Für jedes Eingabebeispiel in pSamples:
    • Die Startzeit darf nicht größer als die Endzeit sein.
    • Ein gültiger IDirect3DSurface9-Zeiger muss bereitgestellt werden.
    • Das Quellrechteck darf nicht größer als die Eingabeoberfläche sein.
    • Das Zielrechteck darf nicht größer als die Zieloberfläche sein.
    • Das planare Alpha muss im bereich [0...1] liegen.
  • Für alle Rechtecke (Quelle, Ziel und Ziel) kann das Rechteck nicht invertiert werden (links > rechts oder oben > unten) oder negative Werte aufweisen.

Anforderungen

   
Unterstützte Mindestversion (Client) Windows Vista [nur Desktop-Apps]
Unterstützte Mindestversion (Server) Windows Server 2008 [nur Desktop-Apps]
Zielplattform Windows
Kopfzeile dxva2api.h

Weitere Informationen

DXVA-Videoverarbeitung

DXVA2_VideoSample

IDirectXVideoProcessor