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:- Eine Videooberfläche vom Typ DXVAHD_SURFACE_TYPE_VIDEO_INPUT oder DXVAHD_SURFACE_TYPE_VIDEO_INPUT_PRIVATE. Siehe IDXVAHD_Device::CreateVideoSurface.
- Eine Decoder-Renderzieloberfläche vom Typ DXVA2_VideoDecoderRenderTarget. Siehe IDirectXVideoAccelerationService::CreateSurface.
- Eine einfache Oberfläche außerhalb des Bildschirms.
- ppPastSurfaces: { ..., T-3, T-2, T-1 }
- ppInputSurface: T
- ppFutureSurfaces: { T+1, T+2, T+3, ... }
- 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 |