Classe CSource

[La funzionalità associata a questa pagina, DirectShow, è una funzionalità legacy. È stata sostituita da MediaPlayer, IMFMediaEngine 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, IMFMediaEngine e Audio/Video Capture in Media Foundation invece di 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 csource

La classe CSource è una classe base per l'implementazione dei filtri di origine. Un filtro derivato da CSource contiene uno o più pin di output derivati dalla classe CSourceStream . Ogni pin di output crea un thread di lavoro che esegue il push di esempi multimediali downstream.

Nota

La classe CSource è progettata per supportare il modello push per il flusso di dati. Questa classe non è consigliata per la creazione di filtri di lettura file. I lettori di file devono supportare il modello pull tramite l'interfaccia IAsyncReader . Per altre informazioni, vedere Flusso di dati per sviluppatori di filtri.

Variabili membro protette Descrizione
m_iPins Numero di pin nel filtro.
m_paStreams Matrice di pin.
m_cStateLock Oggetto sezione critica che protegge lo stato del filtro.
Metodi pubblici Descrizione
CSource Metodo del costruttore.
~CSource Metodo distruttore.
GetPinCount Recupera il numero di pin nel filtro.
GetPin Recupera un pin.
pStateLock Recupera un puntatore all'oggetto sezione critica del filtro.
AddPin Aggiunge un nuovo pin di output al filtro.
RemovePin Rimuove un pin specificato dal filtro.
FindPinNumber Recupera il numero di un segnaposto specificato nel filtro.
Metodi IBaseFilter Descrizione
FindPin Recupera il pin con l'identificatore specificato.

Commenti

Per implementare un pin di output, eseguire le operazioni seguenti:

Per implementare il filtro, eseguire le operazioni seguenti:

  • Derivare una classe da CSource.
  • Nel costruttore creare uno o più pin di output derivati da CSourceStream. I pin si aggiungono automaticamente al filtro nei metodi del costruttore e si rimuovono nei metodi distruttori.

Per sincronizzare lo stato del filtro tra più thread, chiamare il metodo CSource::p StateLock . Questo metodo restituisce un puntatore alla sezione filter-state critical. Usare la classe CAutoLock per contenere la sezione critica. Da un pin è possibile accedere a pStateLock dalla variabile membro CBasePin::m_pFilter del pin, come indicato di seguito:

CAutoLock lock(m_pFilter->pStateLock());

Requisiti

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

Vedi anche

Scrittura di filtri di origine