Condividi tramite


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

DXVA-HD