Примечание
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Приложение должно создать одну или несколько поверхностей Direct3D для использования для входных кадров. Эти элементы должны быть размещены в пуле памяти, указанном членом InputPool структуры DXVAHD_VPDEVCAPS. Можно использовать следующие типы поверхностей:
- Видеоповерхность создаётся путём вызова 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
);
Связанные разделы