Метод IDirectXVideoProcessor::VideoProcessBlt (dxva2api.h)
Выполняет операцию видеопроцесса с одним или несколькими входными примерами и записывает результат на поверхность Direct3D9.
Синтаксис
HRESULT VideoProcessBlt(
[in] IDirect3DSurface9 *pRenderTarget,
[in] const DXVA2_VideoProcessBltParams *pBltParams,
[in] const DXVA2_VideoSample *pSamples,
[in] UINT NumSamples,
[out] HANDLE *pHandleComplete
);
Параметры
[in] pRenderTarget
Указатель на интерфейс IDirect3DSurface9 поверхности Direct3D. Выходные данные операции обработки видео будут записаны на эту поверхность. Поверхность может быть любого из следующих типов:
- Поверхность, созданная путем вызова IDirectXVideoAccelerationService::CreateSurface с флагом DXVA2_VideoProcessRenderTarget . Вы также можете использовать флаг DXVA2_VideoSoftwareRenderTarget , но только в том случае, если guid устройства DXVA2_VideoProcSoftwareDevice (программное устройство обработки видео).
- Поверхность, созданная на устройстве Direct3D с флагом использования D3DUSAGE_RENDERTARGET .
- Цепочка буферов Direct3D.
[in] pBltParams
Указатель на структуру DXVA2_VideoProcessBltParams , описывающую выполняемую операцию обработки видео.
[in] pSamples
Указатель на массив DXVA2_VideoSample структур, содержащих входные образцы. В массиве должен быть хотя бы один элемент.
Максимальное количество входных выборок определяется константой MAX_DEINTERLACE_SURFACES, определенной в файле заголовка dxva2api.h.
[in] NumSamples
Количество элементов в массиве pSamples .
[out] pHandleComplete
Защищены; задайте значение NULL.
Возвращаемое значение
Метод возвращает HRESULT. Допустимые значения включают, но не ограничиваются, значения, приведенные в следующей таблице.
Код возврата | Описание |
---|---|
|
Метод выполнен успешно. |
|
Внутренняя ошибка драйвера. |
|
Недопустимые аргументы. |
Комментарии
При возврате метода операция может быть не завершена.
Если метод возвращает E_INVALIDARG, проверка следующее:
- Количество входных выборок (NumSamples) должно быть меньше или равно MAX_DEINTERLACE_SURFACES.
- Поверхность Direct3D должна быть допустимым целевым объектом для VideoProcessBlt. Дополнительные сведения см. в описании параметра pRT .
- Время презентации (TargetFrame), заданное в pBltParams, должно соответствовать времени начала и окончания текущего рисунка из основного потока. В частности, оно должно быть меньше времени окончания и больше или равно времени начала. Обратите внимание, что первый пример в pSamples может не быть текущим рисунком, если массив pSamples содержит изображения обратной ссылки. Дополнительные сведения см. в разделе Входной пример заказа.
- Целевой прямоугольник (TargetRect), заданный в pBltParams , не может быть больше целевой поверхности (pRT).
- Размер сужения (ConstrictionSize), заданный в pBltParams , не может быть меньше нуля или больше целевого прямоугольника.
- Альфа-компонент цвета фона должен быть opqaue.
- Значения ProcAmp, заданные в pBltParams , должны быть допустимыми. Для всех параметров ProcAmp, поддерживаемых драйвером, эти значения должны относиться к диапазонам, возвращаемым методом IDirectXVideoProcessor::GetProcAmpRange .
- Фильтры шума и сведений, заданные в pBltParams , должны быть допустимыми. Для фильтров, поддерживаемых драйвером, эти значения должны находиться в диапазонах, возвращаемых методом IDirectXVideoProcessor::GetFilterPropertyRange .
- Альфа-значение, заданное в pBltParams, должно находиться в диапазоне [0...1] включительно.
- Для каждого входного примера, заданного в pSamples:
- Время начала не может быть больше времени окончания.
- Необходимо указать допустимый указатель IDirect3DSurface9 .
- Исходный прямоугольник не может быть больше входной поверхности.
- Прямоугольник назначения не может быть больше целевой поверхности.
- Планарный альфа-канал должен находиться в диапазоне [0...1] включительно.
- Для всех прямоугольников (исходного, целевого и целевого) прямоугольник не может быть инвертирован (слева > справа или сверху > внизу) или иметь отрицательные значения.
Требования
Минимальная версия клиента | Windows Vista [только классические приложения] |
Минимальная версия сервера | Windows Server 2008 [только классические приложения] |
Целевая платформа | Windows |
Header | dxva2api.h |