CBaseRenderer.SendEndOfStream, 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.]
Si la fin du flux a été atteinte, la SendEndOfStream
méthode planifie un événement EC_COMPLETE pour le gestionnaire de graphe de filtres.
Syntaxe
virtual HRESULT SendEndOfStream();
Paramètres
Cette méthode n’a aucun paramètre.
Valeur retournée
Retourne une valeur HRESULT . Les valeurs possibles incluent celles du tableau suivant.
Code de retour | Description |
---|---|
|
Le gestionnaire de graphe de filtres n’accepte pas les notifications d’événements. |
|
Opération réussie. |
Notes
Le filtre peut recevoir une notification de fin de flux avant l’heure d’arrêt de l’exemple actuel. Dans ce cas, le filtre doit attendre avant de publier une notification EC_COMPLETE dans le gestionnaire de graphe de filtres.
Par conséquent :
- Si le filtre a reçu une notification EOS (early end-of-stream), cette méthode planifie un événement du minuteur. Lorsque l’événement du minuteur est activé, le filtre publie l’événement EC_COMPLETE.
- Si le filtre a reçu une notification EOS qui n’était pas précoce, cette méthode publie immédiatement l’événement EC_COMPLETE.
- Si le filtre n’a pas de notification EOS en attente, la méthode retourne sans rien faire.
La méthode de rappel du minuteur est CBaseRenderer::TimerCallback. Pour remettre l’événement EC_COMPLETE, le filtre appelle la méthode CBaseRenderer::NotifyEndOfStream .
Configuration requise
Condition requise | Valeur |
---|---|
En-tête |
|
Bibliothèque |
|