Compartir a través de


Método IDirectXVideoProcessor::VideoProcessBlt (dxva2api.h)

Realiza una operación de proceso de vídeo en una o varias muestras de entrada y escribe el resultado en una superficie de Direct3D9.

Sintaxis

HRESULT VideoProcessBlt(
  [in]  IDirect3DSurface9                 *pRenderTarget,
  [in]  const DXVA2_VideoProcessBltParams *pBltParams,
  [in]  const DXVA2_VideoSample           *pSamples,
  [in]  UINT                              NumSamples,
  [out] HANDLE                            *pHandleComplete
);

Parámetros

[in] pRenderTarget

Puntero a la interfaz IDirect3DSurface9 de una superficie direct3D. La salida de la operación de procesamiento de vídeo se escribirá en esta superficie. La superficie puede ser cualquiera de los siguientes tipos:

  • Superficie creada llamando a IDirectXVideoAccelerationService::CreateSurface con la marca DXVA2_VideoProcessRenderTarget . También puede usar la marca de DXVA2_VideoSoftwareRenderTarget , pero solo cuando el GUID del dispositivo es DXVA2_VideoProcSoftwareDevice (dispositivo de procesamiento de vídeo de software).
  • Superficie creada a partir de un dispositivo Direct3D con la marca de uso D3DUSAGE_RENDERTARGET .
  • Una cadena de intercambio de Direct3D.

[in] pBltParams

Puntero a una estructura de DXVA2_VideoProcessBltParams que describe la operación de procesamiento de vídeo que se va a realizar.

[in] pSamples

Puntero a una matriz de estructuras de DXVA2_VideoSample que contienen los ejemplos de entrada. Debe haber al menos un elemento en la matriz.

La constante MAX_DEINTERLACE_SURFACES da el número máximo de muestras de entrada, definidas en el archivo de encabezado dxva2api.h.

[in] NumSamples

Número de elementos de la matriz pSamples .

[out] pHandleComplete

Reservados; se establece en NULL.

Valor devuelto

El método devuelve un valor HRESULT. Entre los valores posibles se incluyen los que se indican en la tabla siguiente, entre otros.

Código devuelto Descripción
S_OK
El método se ha llevado a cabo de forma correcta.
D3DERR_DRIVERINTERNALERROR
Error interno del controlador.
E_INVALIDARG
Argumentos no válidos.

Comentarios

Cuando el método devuelve, es posible que la operación no se complete.

Si el método devuelve E_INVALIDARG, compruebe lo siguiente:

  • El número de muestras de entrada (NumSamples) debe ser menor o igual que MAX_DEINTERLACE_SURFACES.
  • La superficie de Direct3D debe ser un destino válido para VideoProcessBlt. Consulte la descripción del parámetro pRT para obtener más información.
  • La hora de presentación (TargetFrame) especificada en pBltParams debe coincidir con las horas de inicio y finalización de la imagen actual de la secuencia principal. En concreto, debe ser menor que la hora de finalización y mayor o igual que la hora de inicio. Tenga en cuenta que es posible que el primer ejemplo de pSamples no sea la imagen actual, si la matriz pSamples contiene imágenes de referencia anteriores. Para obtener más información, vea Orden de ejemplo de entrada.
  • El rectángulo de destino (TargetRect) proporcionado en pBltParams no puede ser mayor que la superficie de destino (pRT).
  • El tamaño de constricción (ConstrictionSize) proporcionado en pBltParams no puede ser menor que cero o mayor que el rectángulo de destino.
  • El componente alfa del color de fondo debe ser opqaue.
  • Los valores procAmp proporcionados en pBltParams deben ser válidos . Para cualquier configuración de ProcAmp compatible con el controlador, estos valores deben estar dentro de los intervalos devueltos por el método IDirectXVideoProcessor::GetProcAmpRange .
  • Los filtros de ruido y detalle proporcionados en pBltParams deben ser válidos . Para los filtros admitidos por el controlador, estos valores deben estar dentro de los intervalos devueltos por el método IDirectXVideoProcessor::GetFilterPropertyRange .
  • El valor alfa especificado en pBltParams debe estar incluido en el intervalo [0...1].
  • Para cada ejemplo de entrada proporcionado en pSamples:
    • La hora de inicio no puede ser mayor que la hora de finalización.
    • Se debe proporcionar un puntero IDirect3DSurface9 válido.
    • El rectángulo de origen no puede ser mayor que la superficie de entrada.
    • El rectángulo de destino no puede ser mayor que la superficie de destino.
    • El alfa planar debe estar incluido en el intervalo [0...1].
  • Para todos los rectángulos (origen, destino y destino), el rectángulo no se puede invertir (izquierda > derecha o inferior superior > ) o tener valores negativos.

Requisitos

   
Cliente mínimo compatible Windows Vista [solo aplicaciones de escritorio]
Servidor mínimo compatible Windows Server 2008 [solo aplicaciones de escritorio]
Plataforma de destino Windows
Encabezado dxva2api.h

Consulte también

Procesamiento de vídeo DXVA

DXVA2_VideoSample

IDirectXVideoProcessor