Creación de superficies de vídeo DXVA-HD
La aplicación debe crear una o varias superficies de Direct3D para usarlas para los fotogramas de entrada. Estos deben asignarse en el grupo de memoria especificado por el miembro InputPool de la estructura DXVAHD_VPDEVCAPS . Se pueden usar los siguientes tipos de superficie:
- Superficie de vídeo creada llamando a IDXVAHD_Device::CreateVideoSurface y especificando el tipo de superficie DXVAHD_SURFACE_TYPE_VIDEO_INPUT o DXVAHD_SURFACE_TYPE_VIDEO_INPUT_PRIVATE . Este tipo de superficie es equivalente a una superficie sin formato fuera de pantalla.
- Superficie de destino de representación del descodificador, creada llamando a IDirectXVideoAccelerationService::CreateSurface y especificando el tipo de superficie DXVA2_VideoDecoderRenderTarget . Este tipo de superficie se usa para la descodificación DXVA.
- Superficie sin formato fuera de pantalla.
En el código siguiente se muestra cómo asignar una superficie de vídeo mediante 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
);
Temas relacionados