Partager via


Classe CBaseFilter

[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.]

Hiérarchie de classes cbasefilter

La CBaseFilter classe est une classe abstraite pour l’implémentation de filtres. Pour implémenter un filtre à l’aide de cette classe, vous devez effectuer au moins les étapes suivantes :

  • Dérivez une nouvelle classe à partir de CBaseFilter.
  • Incluez les variables membres qui définissent les broches sur le filtre. Les broches doivent hériter de la classe CBasePin .
  • Remplacez la méthode virtuelle pure CBaseFilter::GetPin, qui récupère les broches sur le filtre.
  • Remplacez la méthode virtuelle pure CBaseFilter::GetPinCount, qui récupère le nombre de broches.
  • Fournissez des méthodes de génération, de traitement ou de rendu d’exemples multimédias.

Plusieurs classes de base dérivent de CBaseFilter, notamment CSource, CBaseRenderer et CTransformFilter. Il est généralement plus facile d’implémenter un filtre avec l’une de ces classes spécialisées, plutôt que d’utiliser CBaseFilter directement.

Variables membres protégées Description
m_State État actuel du filtre.
m_pClock Pointeur vers l’horloge de référence du filtre.
m_tStart Temps de référence qui correspond à l’heure de flux 0.
m_clsid Identificateur de classe (CLSID) du filtre.
m_pLock Pointeur vers une section critique utilisée pour sérialiser les changements d’état.
m_pName Nom du filtre.
m_pGraph Pointeur vers le gestionnaire de graphe de filtre.
m_pSink Pointeur vers l’interface IMediaEventSink sur le gestionnaire de graphe de filtre.
m_PinVersion Version actuelle de l’ensemble de broches sur ce filtre.
Méthodes publiques Description
CBaseFilter Méthode du constructeur.
~ CBaseFilter Méthode de destructeur.
StreamTime Récupère l’heure de flux actuelle. Virtuel.
IsActive Détermine si le filtre est actuellement actif (en cours d’exécution ou en pause).
IsStopped Détermine si le filtre est actuellement arrêté.
NotifyEvent Envoie une notification d’événement au gestionnaire de graphe de filtre.
GetFilterGraph Récupère un pointeur vers le gestionnaire de graphe de filtre.
ReconnectPin Interrompt une connexion de broche existante et la reconnecte à la même broche, à l’aide d’un type de média spécifié.
GetPinVersion Récupère un numéro de version pour l’ensemble de broches sur ce filtre. Virtuel.
IncrementPinVersion Incrémente le numéro de version sur l’ensemble de broches.
GetSetupData Récupère les données d’inscription pour le filtre. Virtuel.
Méthodes virtuelles pures Description
GetPinCount Récupère le nombre de broches.
GetPin Récupère une broche.
Méthodes IPersist Description
GetClassID Récupère l’identificateur de classe.
Méthodes IMediaFilter Description
GetState Récupère l’état du filtre (en cours d’exécution, arrêté ou suspendu).
SetSyncSource Définit une horloge de référence pour le filtre.
GetSyncSource Récupère l’horloge de référence utilisée par le filtre.
Arrêter Arrête le filtre.
Suspendre Interrompt le filtre.
Exécuter Permet d'exécuter le filtre.
Méthodes IBaseFilter Description
Énumérations Énumère les broches de ce filtre.
FindPin Récupère la broche avec l’identificateur spécifié.
QueryFilterInfo Récupère des informations sur le filtre.
JoinFilterGraph Avertit le filtre qu’il a joint ou quitté un graphe de filtre.
QueryVendorInfo Récupère une chaîne contenant des informations sur le fournisseur.
IaMovieSetup, méthodes Description
S’inscrire Ajoute le filtre au Registre.
Unregister Supprime le filtre du Registre.

Configuration requise

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