Partager via


CTransformFilter.Receive, méthode

[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.

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

La broche d’entrée du filtre appelle cette méthode lorsqu’il reçoit un exemple. Cette méthode appelle la méthode CTransformFilter::InitializeOutputSample , qui prépare un nouvel exemple de sortie. Ensuite, il appelle la méthode CTransformFilter::Transform , que la classe dérivée doit implémenter. La méthode Transform traite les données d’entrée et produit des données de sortie.

Si la méthode Transform retourne S_FALSE, la Receive méthode supprime cet exemple. Dans le premier exemple supprimé, le filtre envoie un événement EC_QUALITY_CHANGE au gestionnaire de graphiques de filtre. Sinon, si la méthode Transform retourne S_OK, le filtre remet l’exemple de sortie. Pour ce faire, il appelle la méthode IMemInputPin::Receive sur la broche d’entrée en aval.

Configuration requise

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

Voir aussi

CTransformFilter, classe