Condividi tramite


Classe CBaseFilter

[La funzionalità associata a questa pagina, DirectShow, è una funzionalità legacy. È stata sostituita da MediaPlayer, FMMediaEngine e Audio/Video Capture in Media Foundation. Queste funzionalità sono state ottimizzate per Windows 10 e Windows 11. Microsoft consiglia vivamente che il nuovo codice usi MediaPlayer, FMMediaEngine e Audio/Video Capture in Media Foundation anziché DirectShow, quando possibile. Microsoft suggerisce che il codice esistente che usa le API legacy venga riscritto per usare le nuove API, se possibile.

Gerarchia di classi cbasefilter

La classe è una classe astratta per l'implementazione CBaseFilter di filtri. Per implementare un filtro usando questa classe, è necessario eseguire almeno i passaggi seguenti:

  • Derivare una nuova classe da CBaseFilter.
  • Includere variabili membro che definiscono i pin nel filtro. I pin devono ereditare dalla classe CBasePin .
  • Eseguire l'override del metodo virtuale puro CBaseFilter::GetPin, che recupera i pin nel filtro.
  • Eseguire l'override del metodo virtuale puro CBaseFilter::GetPinCount, che recupera il numero di pin.
  • Fornire metodi per la generazione, l'elaborazione o il rendering di esempi di supporti.

Diverse classi di base derivano da CBaseFilter, tra cui CSource, CBaseRenderer e CTransformFilter. In genere è più semplice implementare un filtro con una di queste classi specializzate, anziché usare CBaseFilter direttamente.

Variabili membro protette Descrizione
m_State Stato corrente del filtro.
m_pClock Puntatore all'orologio di riferimento del filtro.
m_tStart Ora di riferimento corrispondente all'ora di flusso 0.
m_clsid Identificatore di classe (CLSID) del filtro.
m_pLock Puntatore a una sezione critica usata per serializzare le modifiche dello stato.
m_pName Nome filtro.
m_pGraph Puntatore alla gestione del grafico dei filtri.
m_pSink Puntatore all'interfaccia IMediaEventSink nella gestione grafo dei filtri.
m_PinVersion Versione corrente del set di pin in questo filtro.
Metodi pubblici Descrizione
CBaseFilter Metodo costruttore.
~ CBaseFilter Metodo distruttore.
StreamTime Recupera l'ora di flusso corrente. Virtuale.
Isactive Determina se il filtro è attualmente attivo (in esecuzione o sospeso).
IsStopped Determina se il filtro è attualmente arrestato.
NotifyEvent Invia una notifica dell'evento al gestore di grafici di filtro.
GetFilterGraph Recupera un puntatore alla gestione dei grafici di filtro.
RiconnessionePin Interrompe una connessione pin esistente e la riconnette allo stesso pin usando un tipo di supporto specificato.
GetPinVersion Recupera un numero di versione per il set di pin in questo filtro. Virtuale.
IncrementPinVersion Incrementa il numero di versione nel set di pin.
GetSetupData Recupera i dati di registrazione per il filtro. Virtuale.
Metodi virtuali pure Descrizione
GetPinCount Recupera il numero di pin.
GetPin Recupera un pin.
Metodi IPersist Descrizione
GetClassID Recupera l'identificatore della classe.
Metodi IMediaFilter Descrizione
GetState Recupera lo stato del filtro (in esecuzione, arrestato o sospeso).
SetSyncSource Imposta un orologio di riferimento per il filtro.
GetSyncSource Recupera l'orologio di riferimento usato dal filtro.
Stop Arresta il filtro.
Sospendi Sospende il filtro.
Esegui Esegue il filtro.
Metodi IBaseFilter Descrizione
EnumPins Enumera i pin in questo filtro.
FindPin Recupera il pin con l'identificatore specificato.
QueryFilterInfo Recupera informazioni sul filtro.
JoinFilterGraph Notifica al filtro che ha aggiunto o lasciato un grafico di filtro.
QueryVendorInfo Recupera una stringa contenente informazioni sul fornitore.
Metodi IAMovieSetup Descrizione
Registra Aggiunge il filtro al Registro di sistema.
Unregister Rimuove il filtro dal Registro di sistema.

Requisiti

Requisito Valore
Intestazione
Amfilter.h (include Streams.h)
Libreria
Strmbase.lib (build retail);
Strmbasd.lib (build di debug)