Méthode CRenderedInputPin.EndOfStream
[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 EndOfStream
méthode avertit le code pin qu’aucune donnée supplémentaire n’est attendue, jusqu’à ce qu’une nouvelle commande d’exécution soit émise pour le filtre. Cette méthode implémente la méthode IPin::EndOfStream .
Syntaxe
HRESULT EndOfStream();
Paramètres
Cette méthode n’a aucun paramètre.
Valeur retournée
Retourne S_OK en cas de réussite, ou un code d’erreur dans le cas contraire.
Notes
Si le filtre est en cours d’exécution, cette méthode envoie un événement EC_COMPLETE au Gestionnaire de graphes de filtre. Sinon, définit un indicateur afin que l’événement EC_COMPLETE soit envoyé lors de l’exécution suivante du filtre. Le vidage du filtre efface l’indicateur.
Vous devez remplacer cette méthode pour contenir le verrou de diffusion en continu du code pin :
class CMyInputPin : public CRenderedInputPin
{
private:
CCritSec * const m_pReceiveLock; // Streaming lock.
public:
STDMETHODIMP EndOfStream(void);
/* (Remainder of the class declaration not shown.) */
};
STDMETHODIMP CMyInputPin::EndOfStream(void)
{
CAutoLock lock(m_pReceiveLock);
return CRenderedInputPin::EndOfStream();
}
En outre, si le filtre traite les appels de réception de manière asynchrone, le code pin doit attendre d’envoyer l’événement EC_COMPLETE jusqu’à ce que le filtre ait traité tous les exemples en attente.
Configuration requise
Condition requise | Valeur |
---|---|
En-tête |
|
Bibliothèque |
|