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.
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 |
|
Libreria |
|