Création de surfaces vidéo DXVA-HD
L’application doit créer une ou plusieurs surfaces Direct3D à utiliser pour les images d’entrée. Ceux-ci doivent être alloués dans le pool de mémoire spécifié par le membre InputPool de la structure DXVAHD_VPDEVCAPS . Les types de surface suivants peuvent être utilisés :
- Surface vidéo créée en appelant IDXVAHD_Device::CreateVideoSurface et en spécifiant le type de surface DXVAHD_SURFACE_TYPE_VIDEO_INPUT ou DXVAHD_SURFACE_TYPE_VIDEO_INPUT_PRIVATE . Ce type de surface équivaut à une surface ordinaire hors écran.
- Surface de cible de rendu du décodeur, créée en appelant IDirectXVideoAccelerationService::CreateSurface et en spécifiant le type de surface DXVA2_VideoDecoderRenderTarget . Ce type de surface est utilisé pour le décodage DXVA.
- Surface ordinaire hors écran.
Le code suivant montre comment allouer une surface vidéo à l’aide de 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
);
Rubriques connexes