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

virtual Receive(
   IMediaSample *pMediaSample
);

Paramètres

pMediaSample

Pointeur vers l’interface IMediaSample de l’exemple.

Valeur renvoyée

Retourne S_OK en cas de réussite, ou une valeur HRESULT indiquant la cause de l’erreur.

Notes

L’épingle d’entrée appelle cette méthode lorsqu’elle reçoit un échantillon du filtre amont.

Si le filtre est en cours d’exécution, cette méthode effectue les étapes suivantes :

  1. Planifie l’exemple pour le rendu (CBaseRenderer::P repareReceive).
  2. Attend l’heure planifiée (CBaseRenderer::WaitForRenderTime).
  3. Restitue l’exemple (CBaseRenderer::Render).
  4. Libère l’exemple (CBaseRenderer::ClearPendingSample).

Si le filtre est suspendu, la méthode effectue les étapes suivantes :

  1. Avertit la classe dérivée qu’un exemple est disponible (CBaseRenderer::OnReceiveFirstSample).
  2. Attend l’heure planifiée.
  3. Restitue l’exemple.
  4. Libère l’exemple.

Pendant la pause, la méthode attend à l’étape 2 jusqu’à ce que le filtre passe à un état d’exécution. À ce stade, le filtre planifie l’exemple.

Dans la classe de base, la méthode OnReceiveFirstSample ne fait rien. La classe dérivée peut la remplacer. Par exemple, lorsqu’un convertisseur vidéo est suspendu, il affiche le premier exemple en tant qu’image fixe.

Configuration requise

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

Voir aussi

CBaseRenderer, classe