Метод 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. Допустимые значения включают, но не ограничиваются, значения, приведенные в следующей таблице.

Код возврата Описание
S_OK
Метод выполнен успешно.
D3DERR_DRIVERINTERNALERROR
Внутренняя ошибка драйвера.
E_INVALIDARG
Недопустимые аргументы.

Комментарии

При возврате метода операция может быть не завершена.

Если метод возвращает 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

См. также раздел

Обработка видео DXVA

DXVA2_VideoSample

IDirectXVideoProcessor