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
);
関連トピック