Partager via


IDirectXVideoProcessor ::VideoProcessBlt, méthode (dxva2api.h)

Effectue une opération de processus vidéo sur un ou plusieurs exemples d’entrée et écrit le résultat sur une surface Direct3D9.

Syntaxe

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

Paramètres

[in] pRenderTarget

Pointeur vers l’interface IDirect3DSurface9 d’une surface Direct3D. La sortie de l’opération de traitement vidéo sera écrite sur cette surface. La surface peut être l’un des types suivants :

  • Surface créée en appelant IDirectXVideoAccelerationService ::CreateSurface avec l’indicateur DXVA2_VideoProcessRenderTarget . Vous pouvez également utiliser l’indicateur DXVA2_VideoSoftwareRenderTarget , mais uniquement lorsque le GUID de l’appareil est DXVA2_VideoProcSoftwareDevice (périphérique de traitement vidéo logiciel).
  • Surface créée à partir d’un appareil Direct3D avec l’indicateur d’utilisation D3DUSAGE_RENDERTARGET .
  • Chaîne de permutation Direct3D.

[in] pBltParams

Pointeur vers une structure DXVA2_VideoProcessBltParams qui décrit l’opération de traitement vidéo à effectuer.

[in] pSamples

Pointeur vers un tableau de structures DXVA2_VideoSample qui contiennent les exemples d’entrée. Il doit y avoir au moins un élément dans le tableau.

Le nombre maximal d’exemples d’entrée est donné par la constante MAX_DEINTERLACE_SURFACES, définie dans le fichier d’en-tête dxva2api.h.

[in] NumSamples

Nombre d’éléments dans le tableau pSamples .

[out] pHandleComplete

Réservés au; défini sur NULL.

Valeur retournée

Cette méthode retourne un code HRESULT. Les valeurs possibles sont notamment celles figurant dans le tableau suivant.

Code de retour Description
S_OK
S_OK
D3DERR_DRIVERINTERNALERROR
Erreur de pilote interne.
E_INVALIDARG
Arguments non valides.

Remarques

Lorsque la méthode retourne, l’opération peut ne pas être terminée.

Si la méthode retourne E_INVALIDARG, case activée pour les éléments suivants :

  • Le nombre d’exemples d’entrée (NumSamples) doit être inférieur ou égal à MAX_DEINTERLACE_SURFACES.
  • La surface Direct3D doit être une cible valide pour VideoProcessBlt. Pour plus d’informations, consultez la description du paramètre pRT .
  • L’heure de présentation (TargetFrame) indiquée dans pBltParams doit correspondre aux heures de début et de fin de l’image actuelle du flux principal. Plus précisément, elle doit être inférieure à l’heure de fin et supérieure ou égale à l’heure de début. Notez que le premier exemple de pSamples peut ne pas être l’image actuelle, si le tableau pSamples contient des images de référence antérieures. Pour plus d’informations, consultez Ordre d’exemple d’entrée.
  • Le rectangle cible (TargetRect) donné dans pBltParams ne peut pas être plus grand que la surface de destination (pRT).
  • La taille de constriction (ConstrictionSize) donnée dans pBltParams ne peut pas être inférieure à zéro ou supérieure au rectangle cible.
  • Le composant alpha de la couleur d’arrière-plan doit être opqaue.
  • Les valeurs ProcAmp indiquées dans pBltParams doivent être valides . Pour tous les paramètres ProcAmp pris en charge par le pilote, ces valeurs doivent se trouver dans les plages retournées par la méthode IDirectXVideoProcessor ::GetProcAmpRange .
  • Les filtres de bruit et de détail indiqués dans pBltParams doivent être valides. Pour tous les filtres pris en charge par le pilote, ces valeurs doivent se trouver dans les plages retournées par la méthode IDirectXVideoProcessor ::GetFilterPropertyRange .
  • La valeur alpha donnée dans pBltParams doit être comprise dans la plage [0...1] inclusive.
  • Pour chaque exemple d’entrée donné dans pSamples :
    • L’heure de début ne peut pas être supérieure à l’heure de fin.
    • Un pointeur IDirect3DSurface9 valide doit être fourni.
    • Le rectangle source ne peut pas être plus grand que la surface d’entrée.
    • Le rectangle de destination ne peut pas être plus grand que la surface de destination.
    • L’alpha planaire doit être compris dans la plage [0...1] inclusive.
  • Pour tous les rectangles (source, destination et cible), le rectangle ne peut pas être inversé (gauche > à droite ou en haut > en bas) ou avoir des valeurs négatives.

Configuration requise

   
Client minimal pris en charge Windows Vista [applications de bureau uniquement]
Serveur minimal pris en charge Windows Server 2008 [applications de bureau uniquement]
Plateforme cible Windows
En-tête dxva2api.h

Voir aussi

Traitement vidéo DXVA

DXVA2_VideoSample

IDirectXVideoProcessor