Méthode IBasicVideo ::GetCurrentImage (control.h)
[La fonctionnalité associée à cette page, DirectShow, est une fonctionnalité héritée. Il a été remplacé par MediaPlayer, IMFMediaEngine et Audio/Video Capture dans Media Foundation. Ces fonctionnalités ont été optimisées pour Windows 10 et Windows 11. Microsoft recommande vivement au nouveau code d’utiliser MediaPlayer, IMFMediaEngine et La capture audio/vidéo dans Media Foundation au lieu de DirectShow, lorsque cela est possible. Microsoft suggère que le code existant qui utilise les API héritées soit réécrit pour utiliser les nouvelles API si possible.]
La GetCurrentImage
méthode récupère l’image actuelle en attente au niveau du convertisseur.
Syntaxe
HRESULT GetCurrentImage(
[in, out] long *pBufferSize,
[out] long *pDIBImage
);
Paramètres
[in, out] pBufferSize
Pointeur vers une variable qui contient la taille de la mémoire tampon que l’appelant passe. Si pDIBImage a la valeur NULL, ce paramètre reçoit la taille de mémoire tampon requise.
[out] pDIBImage
Pointeur vers une mémoire tampon où l’image complète sera stockée au format bitmap indépendant de l’appareil (DIB). Castez le pointeur en un type de pointeur long.
Valeur retournée
Retourne une valeur HRESULT .
Remarques
Le filtre Video Renderer et le convertisseur de vidéo mixage (VMR) implémentent cette méthode différemment.
Video Renderer uniquement :
Cette méthode échoue si le convertisseur utilise l’accélération DirectDraw. Malheureusement, cela dépend de la configuration matérielle de l’utilisateur final. Dans la pratique, cette méthode n’est donc pas fiable.Suspendez le convertisseur vidéo avant d’appeler cette méthode. Sinon, la méthode retourne VFW_E_NOT_PAUSED. Assurez-vous que l’opération de pause est terminée en appelant IMediaControl ::GetState ; si l’opération de pause n’est pas terminée, la méthode GetCurrentImage retourne E_UNEXPECTED. Selon les données disponibles du filtre source, le convertisseur vidéo n’est pas garanti pour traiter cette demande. Si aucune image n’est disponible, elle retourne E_FAIL.
Convertisseur de mixage vidéo uniquement :
Cette méthode est fiable, que le vmR utilise l’accélération DirectDraw et quel que soit l’état actuel du graphique (en cours d’exécution, arrêté ou suspendu).Convertisseur vidéo et convertisseur de mixage vidéo :
Pour obtenir la taille de mémoire tampon requise pour contenir l’image, appelez cette méthode avec un pointeur NULL dans le paramètre pDIBImage . La méthode retourne la taille de mémoire tampon requise dans le paramètre pBufferSize . Allouez une mémoire tampon de cette taille et appelez à nouveau la méthode, avec pDIBImage pointant vers la mémoire tampon. Lors du deuxième appel, utilisez pBufferSize pour spécifier la taille de la mémoire tampon. Si la mémoire tampon est trop petite pour contenir l’image complète, la méthode retourne E_OUTOFMEMORY.Si la méthode réussit, la mémoire tampon est remplie avec l’image DIB entière, y compris la structure BITMAPINFOHEADER , ainsi que les entrées de palette et les masques de bits définis dans la structure BITMAPINFO Win32. Le format de l’image dépend du type fourni par le filtre source et ne peut pas être spécifié à l’avance.
Configuration requise
Condition requise | Valeur |
---|---|
Client minimal pris en charge | Windows 2000 Professionnel [applications de bureau uniquement] |
Serveur minimal pris en charge | Windows 2000 Server [applications de bureau uniquement] |
Plateforme cible | Windows |
En-tête | control.h (include Dshow.h) |
Bibliothèque | Strmiids.lib |