DXVAHD_STREAM_DATA-Struktur (dxvahd.h)

Enthält Daten pro Stream für die IDXVAHD_VideoProcessor::VideoProcessBltHD-Methode .

Syntax

typedef struct _DXVAHD_STREAM_DATA {
  BOOL              Enable;
  UINT              OutputIndex;
  UINT              InputFrameOrField;
  UINT              PastFrames;
  UINT              FutureFrames;
  IDirect3DSurface9 **ppPastSurfaces;
  IDirect3DSurface9 *pInputSurface;
  IDirect3DSurface9 **ppFutureSurfaces;
} DXVAHD_STREAM_DATA;

Member

Enable

Gibt an, ob dieser Eingabedatenstrom aktiviert ist. Wenn der Wert TRUE ist, durchgibt die VideoProcessBltHD-Methode diesen Stream auf die Ausgabeoberfläche. Andernfalls wird der Stream nicht blitted. Die maximale Anzahl von Streams, die gleichzeitig aktiviert werden können, wird im MaxInputStreams-Element der DXVAHD_VPDEVCAPS-Struktur angegeben.

OutputIndex

Die nullbasierte Indexnummer des Ausgabeframes. Siehe Hinweise.

InputFrameOrField

Die nullbasierte Indexnummer des Eingaberahmens oder -felds. Siehe Hinweise.

PastFrames

Die Anzahl vergangener Referenzframes. Dieser Wert muss kleiner oder gleich dem Wert des PastFrames-Elements der DXVAHD_VPCAPS-Struktur sein.

FutureFrames

Die Anzahl der zukünftigen Referenzrahmen. Dieser Wert muss kleiner oder gleich dem Wert des FutureFrames-Elements der DXVAHD_VPCAPS-Struktur sein.

ppPastSurfaces

Ein Zeiger auf ein Array von IDirect3DSurface9-Zeigern , die vom Aufrufer zugeordnet werden. Dieses Array enthält die vergangenen Referenzframes für den Videoverarbeitungsvorgang. Die Anzahl der Elemente im Array entspricht dem Wert des PastFrames-Elements .

pInputSurface

Ein Zeiger auf die IDirect3DSurface9-Schnittstelle einer Microsoft Direct3D-Oberfläche, die den aktuellen Eingabeframe enthält.

ppFutureSurfaces

Ein Zeiger auf ein Array von IDirect3DSurface9-Zeigern , die vom Aufrufer zugeordnet werden. Dieses Array enthält die zukünftigen Referenzframes für den Videoverarbeitungsvorgang. Die Anzahl der Elemente im Array entspricht dem Wert des FutureFrames-Elements .

Hinweise

Eingabeoberflächen

Die Direct3D-Oberflächen müssen im Speicherpool zugeordnet werden, der vom InputPool-Member der DXVAHD_VPDEVCAPS-Struktur angegeben wird. Die folgenden Oberflächentypen können verwendet werden: Die bisherigen und zukünftigen Bezugsrahmen müssen in den Arrays in zeitlicher Reihenfolge platziert werden, vom ältesten bis zum neuesten. Wenn z. B. T der aktuelle Eingaberahmen ist, werden die Arrays wie folgt sortiert:
  • ppPastSurfaces: { ..., T-3, T-2, T-1 }
  • ppInputSurface: T
  • ppFutureSurfaces: { T+1, T+2, T+3, ... }
Die DXVAHD_VPCAPS-Struktur gibt die Anzahl der Referenzframes an, die erforderlich sind, um die beste Deinterlacingqualität zu erzielen. Wenn die Anwendung weniger Referenzframes bereitstellt, wird das Gerät auf einfachere Deinterlacingalgorithmen zurückgreifen. Wenn keine Referenzframes bereitgestellt werden, kann das Gerät bob-Deinterlacing verwenden. Im Folgenden finden Sie einige Fälle, in denen eine Anwendung möglicherweise weniger Referenzframes bereitstellt:
  • Am Anfang oder Ende der Videosequenz
  • Mit progressiver Eingabe
  • Während eines Übergangs zwischen progressiver und interlaced-Eingabe
  • Für einen Teilstrom, der keine hohe Deinterlacingqualität erfordert
  • Beim Löschen von Frames

Eingabe- und Ausgabeindizes

Die Member OutputIndex und InputFrameOrField werden verwendet, um Eingabeframes oder Felder mit Ausgabeframes zu korrelieren. Der Wert des OutputIndex-Elements ist zyklischer Wert und wird nach jedem Zyklus auf null zurückgesetzt.

Hier sind einige Beispielmuster:

  • Progressives Video mit normaler Rate. Jeder Eingabeframe erzeugt einen Ausgabeframe.
    • Ausgabeindex: 0, 0, 0, 0, ...
    • Eingabeindex: 0, 1, 2, 3, ...
  • Interlaced video at normal rate. Jeder Interlaced-Frame (zwei Felder) erzeugt zwei Ausgabeframes.
    • Ausgabeindex: 0, 1, 0, 1, ...
    • Eingabeindex: 0, 1, 2, 3, ...
  • Progressives Video mit einer Ausgaberate von 2/1. Jeder Eingabeframe erzeugt einen Ausgabeframe.
    • Ausgabeindex: 0, 1, 0, 1, ...
    • Eingabeindex: 0, 1, 2, 3, ...
  • Interlaced video at 1/2 output rate( Interlaced video at 1/2 output rate). Jeder Interlacedframe erzeugt einen Ausgabeframe. (Die beiden Felder werden gemischt, um einen Frame zu erstellen.)
    • Ausgabeindex: 0, 0, 0, 0, ...
    • Eingabeindex: 0, 2, 4, 6, ...

Anforderungen

   
Unterstützte Mindestversion (Client) Windows 7 [nur Desktop-Apps]
Unterstützte Mindestversion (Server) Windows Server 2008 R2 [nur Desktop-Apps]
Kopfzeile dxvahd.h

Weitere Informationen

DXVA-HD

Direct3D-Videostrukturen

Media Foundation-Strukturen