Compartilhar via


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

Executa uma operação de processo de vídeo em um ou mais exemplos de entrada e grava o resultado em uma superfície Direct3D9.

Sintaxe

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

Um ponteiro para a interface IDirect3DSurface9 de uma superfície Direct3D. A saída da operação de processamento de vídeo será gravada nessa superfície. A superfície pode ser qualquer um dos seguintes tipos:

  • Uma superfície criada chamando IDirectXVideoAccelerationService::CreateSurface com o sinalizador DXVA2_VideoProcessRenderTarget . Você também pode usar o sinalizador DXVA2_VideoSoftwareRenderTarget , mas somente quando o GUID do dispositivo é DXVA2_VideoProcSoftwareDevice (dispositivo de processamento de vídeo de software).
  • Uma superfície criada a partir de um dispositivo Direct3D com o sinalizador de uso D3DUSAGE_RENDERTARGET .
  • Uma cadeia de troca direct3D.

[in] pBltParams

Um ponteiro para uma estrutura DXVA2_VideoProcessBltParams que descreve a operação de processamento de vídeo a ser executada.

[in] pSamples

Um ponteiro para uma matriz de estruturas DXVA2_VideoSample que contêm os exemplos de entrada. Deve haver pelo menos um elemento na matriz.

O número máximo de amostras de entrada é dado pela constante MAX_DEINTERLACE_SURFACES, definida no arquivo de cabeçalho dxva2api.h.

[in] NumSamples

O número de elementos na matriz pSamples .

[out] pHandleComplete

Reservados; defina como NULL.

Retornar valor

O método retorna um HRESULT. Os possíveis valores incluem, mas sem limitação, aqueles na tabela a seguir.

Código de retorno Descrição
S_OK
O método foi bem-sucedido.
D3DERR_DRIVERINTERNALERROR
Erro interno do driver.
E_INVALIDARG
Argumentos inválidos.

Comentários

Quando o método retorna, a operação pode não estar concluída.

Se o método retornar E_INVALIDARG, marcar para o seguinte:

  • O número de amostras de entrada (NumSamples) deve ser menor ou igual a MAX_DEINTERLACE_SURFACES.
  • A superfície direct3D deve ser um destino válido para VideoProcessBlt. Consulte a descrição do parâmetro pRT para obter detalhes.
  • A hora da apresentação (TargetFrame) fornecida em pBltParams deve corresponder aos horários de início e término da imagem atual do fluxo primário. Especificamente, ele deve ser menor que a hora de término e maior ou igual à hora de início. Observe que o primeiro exemplo em pSamples pode não ser a imagem atual, se a matriz pSamples contiver imagens de referência anteriores. Para obter mais informações, consulte Ordem de exemplo de entrada.
  • O retângulo de destino (TargetRect) fornecido em pBltParams não pode ser maior que a superfície de destino (pRT).
  • O tamanho da constrição (ConstrictionSize) fornecido em pBltParams não pode ser menor que zero ou maior que o retângulo de destino.
  • O componente alfa da cor da tela de fundo deve ser opqaue.
  • Os valores procAmp fornecidos em pBltParams devem ser válidos . Para qualquer configuração de ProcAmp compatível com o driver, esses valores devem estar dentro dos intervalos retornados pelo método IDirectXVideoProcessor::GetProcAmpRange .
  • Os filtros de ruído e detalhes dados em pBltParams devem ser válidos . Para todos os filtros compatíveis com o driver, esses valores devem estar dentro dos intervalos retornados pelo método IDirectXVideoProcessor::GetFilterPropertyRange .
  • O valor alfa fornecido em pBltParams deve estar no intervalo [0...1] inclusive.
  • Para cada exemplo de entrada dado em pSamples:
    • A hora de início não pode ser maior que a hora de término.
    • Um ponteiro IDirect3DSurface9 válido deve ser fornecido.
    • O retângulo de origem não pode ser maior que a superfície de entrada.
    • O retângulo de destino não pode ser maior que a superfície de destino.
    • O alfa planar deve estar no intervalo [0...1] inclusive.
  • Para todos os retângulos (origem, destino e destino), o retângulo não pode ser invertido (esquerda > direita ou parte superior > inferior) ou ter valores negativos.

Requisitos

   
Cliente mínimo com suporte Windows Vista [somente aplicativos da área de trabalho]
Servidor mínimo com suporte Windows Server 2008 [somente aplicativos da área de trabalho]
Plataforma de Destino Windows
Cabeçalho dxva2api.h

Confira também

Processamento de vídeo DXVA

DXVA2_VideoSample

IDirectXVideoProcessor