Partager via


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
        );

DXVA-HD