IMemInputPin ::Receive, méthode (strmif.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 in Media Foundation. Ces fonctionnalités ont été optimisées pour Windows 10 et Windows 11. Microsoft recommande vivement que le nouveau code utilise MediaPlayer, IMFMediaEngine et Audio/Video Capture dans Media Foundation au lieu de DirectShow, si 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 l’exemple de média suivant dans le flux.
Syntaxe
HRESULT Receive(
[in] IMediaSample *pSample
);
Paramètres
[in] pSample
Pointeur vers l’interface IMediaSample de l’exemple.
Valeur retournée
Retourne une valeur HRESULT . Les valeurs possibles incluent celles indiquées dans le tableau suivant.
Code de retour | Description |
---|---|
|
Opération réussie. |
|
L’échantillon a été rejeté. |
|
Argument pointeur NULL . |
|
Type de média non valide. |
|
Une erreur d’exécution s’est produite. |
|
L’épingle est arrêtée. |
Remarques
Cette méthode est synchrone et peut être bloquante. L’épingle effectue l’une des opérations suivantes :
- Rejette l’exemple.
- Retourne immédiatement et traite l’exemple dans un thread de travail.
- Traite l’exemple avant de retourner.
Si l’épingle utilise un thread de travail pour traiter l’exemple, elle contient un nombre de références sur l’exemple. Dans tous les cas, la broche de sortie ne peut pas réutiliser directement cet exemple. Elle doit appeler la méthode IMemAllocator ::GetBuffer pour obtenir un nouvel exemple.
Si cette méthode retourne S_FALSE ou un code d’erreur, le filtre amont doit cesser d’envoyer des exemples jusqu’à ce que le graphique arrête ou termine une opération de vidage. Les raisons courantes d’une valeur de retour S_FALSE sont les suivantes :
- La broche en aval est en cours de vidage ; autrement dit, il a reçu un appel BeginFlush et n’a pas encore reçu d’appel EndFlush .
- Le filtre en aval a détecté la fin du flux. (Voir Notifications de fin d’Stream.)
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 | strmif.h (include Dshow.h) |
Bibliothèque | Strmiids.lib |