Membuat Permukaan Video DXVA-HD
Aplikasi harus membuat satu atau beberapa permukaan Direct3D untuk digunakan untuk bingkai input. Ini harus dialokasikan di kumpulan memori yang ditentukan oleh anggota InputPool dari struktur DXVAHD_VPDEVCAPS . Jenis permukaan berikut dapat digunakan:
- Permukaan video yang dibuat dengan memanggil IDXVAHD_Device::CreateVideoSurface dan menentukan jenis permukaan DXVAHD_SURFACE_TYPE_VIDEO_INPUT atau DXVAHD_SURFACE_TYPE_VIDEO_INPUT_PRIVATE . Jenis permukaan ini setara dengan permukaan biasa di luar layar.
- Permukaan target render decoder, dibuat dengan memanggil IDirectXVideoAccelerationService::CreateSurface dan menentukan jenis permukaan DXVA2_VideoDecoderRenderTarget . Jenis permukaan ini digunakan untuk pendekodean DXVA.
- Permukaan polos di luar layar.
Kode berikut menunjukkan cara mengalokasikan permukaan video, menggunakan 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
);
Topik terkait