Méthode CVideoTransformFilter.Receive

[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 Receive méthode reçoit un exemple multimédia, le traite et remet un exemple de sortie au filtre en aval. Cette méthode remplace la méthode CTransformFilter::Receive .

Syntaxe

HRESULT Receive(
   IMediaSample *pSample
);

Paramètres

pSample

Pointeur vers l’interface IMediaSample sur l’exemple d’entrée.

Valeur renvoyée

Retourne une valeur HRESULT . Il peut prendre les valeurs suivantes :

Code de retour Description
S_FALSE
Le filtre amont doit cesser d’envoyer des exemples.
S_OK
Opération réussie.

Notes

Cette méthode appelle CVideoTransformFilter::ShouldSkipFrame pour déterminer si elle doit remettre cet exemple ou simplement l’ignorer. Si ShouldSkipFrame retourne FALSE (indiquant que l’exemple doit être remis), la méthode effectue les opérations suivantes :

  1. Appelle CTransformFilter::InitializeOutputSample pour préparer l’exemple de sortie
  2. Appelle CTransformFilter::Transform pour traiter l’exemple d’entrée. Cette méthode est virtuelle pure et doit être implémentée dans la classe dérivée.
  3. Appelle CBaseOutputPin::D eliver pour remettre l’exemple de sortie.

En outre, cette méthode recherche les modifications de format sur l’exemple d’entrée ou de sortie, en appelant IMediaSample::GetMediaType. En cas de modification de format, la méthode définit le type de connexion sur la broche correspondante. Avant de définir le nouveau type, il appelle StopStreaming. Une fois qu’il a définit le nouveau type, il appelle StartStreaming. La classe dérivée peut utiliser ces méthodes pour mettre à jour son état interne. La classe dérivée peut également devoir case activée pour le nouveau format dans sa méthode Transform.

Configuration requise

Condition requise Valeur
En-tête
Vtrans.h (include Streams.h)
Bibliothèque
Strmbase.lib (builds de vente au détail) ;
Strmbasd.lib (builds de débogage)

Voir aussi

CVideoTransformFilter, classe