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:- Superficie video di tipo DXVAHD_SURFACE_TYPE_VIDEO_INPUT o DXVAHD_SURFACE_TYPE_VIDEO_INPUT_PRIVATE. Vedere IDXVAHD_Device::CreateVideoSurface.
- Superficie di destinazione del rendering del decodificatore di tipo DXVA2_VideoDecoderRenderTarget. Vedere IDirectXVideoAccelerationService::CreateSurface.
- Superficie fuori schermo.
- ppPastSurfaces: { ..., T-3, T-2, T-1 }
- ppInputSurface: T
- ppFutureSurfaces: { T+1, T+2, T+3, ... }
- 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 |