Condividi tramite


struttura DXVAHD_STREAM_DATA (dxvahd.h)

Contiene dati per flusso per il metodo IDXVAHD_VideoProcessor::VideoProcessBltHD .

Sintassi

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

Members

Enable

Specifica se questo flusso di input è abilitato. Se il valore è TRUE, il metodo VideoProcessBltHD copia il flusso nella superficie di output. In caso contrario, il flusso non viene copiato. Il numero massimo di flussi che è possibile abilitare contemporaneamente viene assegnato nel membro MaxInputStreams della struttura DXVAHD_VPDEVCAPS .

OutputIndex

Numero di indice in base zero del frame di output. Vedere la sezione Osservazioni.

InputFrameOrField

Numero di indice in base zero della cornice di input o del campo. Vedere la sezione Osservazioni.

PastFrames

Numero di frame di riferimento precedenti. Questo valore deve essere minore o uguale al valore del membro PastFrames della struttura DXVAHD_VPCAPS .

FutureFrames

Numero di frame di riferimento futuri. Questo valore deve essere minore o uguale al valore del membro FutureFrames della struttura DXVAHD_VPCAPS .

ppPastSurfaces

Puntatore a una matrice di puntatori IDirect3DSurface9 allocati dal chiamante. Questa matrice contiene i fotogrammi di riferimento precedenti per l'operazione di elaborazione video. Il numero di elementi nella matrice è uguale al valore del membro PastFrames .

pInputSurface

Puntatore all'interfaccia IDirect3DSurface9 di una superficie Microsoft Direct3D che contiene il frame di input corrente.

ppFutureSurfaces

Puntatore a una matrice di puntatori IDirect3DSurface9 allocati dal chiamante. Questa matrice contiene i fotogrammi di riferimento futuri per l'operazione di elaborazione video. Il numero di elementi nella matrice è uguale al valore del membro FutureFrames .

Commenti

Superfici di input

Le superfici Direct3D devono essere allocate nel pool di memoria specificato dal membro InputPool della struttura DXVAHD_VPDEVCAPS . È possibile usare i tipi di superficie seguenti: I frame di riferimento passati e futuri devono essere posizionati nelle matrici in ordine temporale, dal meno recente al più recente. Ad esempio, se T è il frame di input corrente, le matrici verranno ordinate come segue:
  • ppPastSurfaces: { ..., T-3, T-2, T-1 }
  • ppInputSurface: T
  • ppFutureSurfaces: { T+1, T+2, T+3, ... }
La struttura DXVAHD_VPCAPS specifica il numero di frame di riferimento necessari per ottenere la migliore qualità di denterlacing. Se l'applicazione fornisce un minor numero di frame di riferimento, il dispositivo eseguirà il fallback agli algoritmi di denterlacing più semplici. Se non vengono forniti frame di riferimento, il dispositivo può usare bob deinterlacing. Ecco alcuni casi in cui un'applicazione potrebbe fornire meno frame di riferimento:
  • All'inizio o alla fine della sequenza video
  • Con input progressivo
  • Durante una transizione tra input progressivo e interlacciato
  • Per un sottostream che non richiede alta qualità di denterlacing
  • Durante il rilascio di fotogrammi

Indici di input e output

I membri OutputIndex e InputFrameOrField vengono usati per correlare i fotogrammi di input o i campi con i fotogrammi di output. Il valore del membro OutputIndex è ciclico e reimposta su zero dopo ogni ciclo.

Ecco alcuni modelli di esempio:

  • Video progressivo a velocità normale. Ogni fotogramma di input produce un frame di output.
    • Indice di output: 0, 0, 0, 0, ...
    • Indice di input: 0, 1, 2, 3, ...
  • Video interlacciato a velocità normale. Ogni frame interlacciato (due campi) produce due fotogrammi di output.
    • Indice di output: 0, 1, 0, 1, ...
    • Indice di input: 0, 1, 2, 3, ...
  • Video progressivo con velocità di output 2/1. Ogni fotogramma di input produce un frame di output.
    • Indice di output: 0, 1, 0, 1, ...
    • Indice di input: 0, 1, 2, 3, ...
  • Video interlacciato a 1/2 velocità di output. Ogni frame interlacciato produce un frame di output. I due campi vengono mescolati per creare un frame.
    • Indice di output: 0, 0, 0, 0, ...
    • Indice di input: 0, 2, 4, 6, ...

Requisiti

   
Client minimo supportato Windows 7 [solo app desktop]
Server minimo supportato Windows Server 2008 R2 [solo app desktop]
Intestazione dxvahd.h

Vedi anche

DXVA-HD

Strutture video Direct3D

Strutture di Media Foundation