次の方法で共有


DXVA-HD ビデオ サーフェスの作成

アプリケーションでは、入力フレームに使用する 1 つ以上の Direct3D サーフェスを作成する必要があります。 これらは、DXVAHD_VPDEVCAPS構造体の InputPool メンバーによって指定されたメモリ プールに割り当てる必要があります。 次のサーフェスタイプを使用できます。

  • IDXVAHD_Device::CreateVideoSurface を呼び出し、DXVAHD_SURFACE_TYPE_VIDEO_INPUTまたはDXVAHD_SURFACE_TYPE_VIDEO_INPUT_PRIVATEサーフェスタイプを指定して作成されたビデオ サーフェス。 このサーフェス タイプは、画面外のプレーン サーフェスと同じです。
  • IDirectXVideoAccelerationService::CreateSurface を呼び出し、DXVA2_VideoDecoderRenderTargetサーフェスの種類を指定して作成されたデコーダー レンダー ターゲット サーフェス。 このサーフェスの種類は、DXVA デコードに使用されます。
  • 画面外のプレーンサーフェス。

次のコードは、 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