Creazione di superfici video DXVA-HD
L'applicazione deve creare una o più superfici Direct3D da usare per i fotogrammi di input. Queste devono essere allocate nel pool di memoria specificato dal membro InputPool della struttura DXVAHD_VPDEVCAPS . È possibile usare i tipi di superficie seguenti:
- Superficie video creata chiamando IDXVAHD_Device::CreateVideoSurface e specificando il tipo di superficie DXVAHD_SURFACE_TYPE_VIDEO_INPUT o DXVAHD_SURFACE_TYPE_VIDEO_INPUT_PRIVATE . Questo tipo di superficie equivale a una superficie fuori schermo.
- Superficie di rendering del decodificatore creata chiamando IDirectXVideoAccelerationService::CreateSurface e specificando il tipo di superficie DXVA2_VideoDecoderRenderTarget . Questo tipo di superficie viene usato per la decodifica DXVA.
- Superficie fuori schermo.
Il codice seguente illustra come allocare una superficie video usando CreateVideoSurface:
// Create the video surface for the primary video stream.
hr = pDXVAHD->CreateVideoSurface(
VIDEO_WIDTH,
VIDEO_HEIGHT,
VIDEO_FORMAT,
caps.InputPool,
0, // Usage
DXVAHD_SURFACE_TYPE_VIDEO_INPUT,
1, // Number of surfaces to create
&pSurf, // Array of surface pointers
NULL
);
Argomenti correlati