CBaseStreamControl, classe

Cette classe implémente l’interface IAMStreamControl pour les broches d’entrée et de sortie. Il permet de contrôler le démarrage et l’arrêt d’un code confidentiel individuel sur le filtre. Un code confidentiel qui prend en charge IAMStreamControl doit hériter de cette classe de base. Voici une déclaration classique pour une broche d’entrée :
class CMyInputPin : public CBaseInputPin, public CBaseStreamControl
Veillez à remplacer NonDelegatingQueryInteface pour exposer IAMStreamControl. Pour plus d’informations, consultez comment implémenter IUnknown.
| Méthodes publiques | Description |
|---|---|
| CBaseStreamControl | Méthode de constructeur. |
| ~ CBaseStreamControl | Méthode de destructeur. |
| CheckStreamState | Détermine si un échantillon de média doit être remis ou ignoré. |
| Vidage | Notifie la classe de base que le code confidentiel a démarré ou a arrêté le vidage. |
| NotifyFilterState | Notifie le code confidentiel lorsque l’état du filtre change. |
| SetFilterGraph | Spécifie le récepteur d’événements pour les événements de contrôle de flux. |
| SetSyncSource | Notifie la classe de base de l’horloge de référence actuelle. |
| Méthodes IAMStreamControl | Description |
| GetInfo | Récupère des informations sur les paramètres de contrôle de flux actuels, y compris les heures de démarrage et d’arrêt. |
| Commencer | Informe le code confidentiel quand il faut commencer à transmettre des données. |
| StopAt | Informe le code confidentiel quand il faut arrêter la transmission de données. |
Remarques
Cette classe requiert le code confidentiel et le filtre propriétaire pour notifier la classe lorsque divers événements se produisent, tels que le filtre qui rejoint le graphique ou la réception d’une nouvelle horloge de référence. Vous devez appeler les méthodes de classe suivantes :
- Dans la méthode IMediaFilter :: SetSyncSource du filtre, appelez la méthode CBaseStreamControl :: SetSyncSource . Cette méthode notifie la classe de l’horloge de référence actuelle.
- Dans la méthode CBaseFilter :: JoinFilterGraph du filtre, appelez la méthode CBaseStreamControl :: SetFilterGraph . cette méthode donne à la classe un pointeur vers le gestionnaire de Graph de filtre, afin que la classe puisse envoyer les événements de contrôle de flux appropriés.
- Chaque fois que le filtre change d’État (en en cours d’exécution, suspendu ou arrêté), appelez la méthode CBaseStreamControl :: NotifyFilterState .
- Dans les méthodes IPIN :: BeginFlush et IPIN :: EndFlush du pin, appelez la méthode CBaseStreamControl :: Flush .
La CBaseStreamControl classe utilise l’horloge de référence du graphique de filtre pour déterminer les échantillons que le filtre doit remettre et celui qu’il doit ignorer. Dans la méthode IMemInputPin :: Receive de votre pin, appelez la méthode CBaseStreamControl :: CheckStreamState avec un pointeur vers l’exemple de média entrant. Si la méthode retourne le flux de flux de valeur _ , fournissez l’exemple en aval. Sinon, ignorez-le.
Configuration requise
| Condition requise | Valeur |
|---|---|
| En-tête |
|
| Bibliothèque |
|