Classe CPullPin

cpullpin class hierarchy

La CPullPin classe fornisce il supporto per i pin di input che estraggono i dati tramite l'interfaccia IAsyncReader . Usare questa classe se si implementa un filtro che usa il modello di pull per richiedere dati dal filtro upstream. Per altre informazioni, vedere Flusso di dati in Filter Graph and Pull Model .For more information, see Flusso di dati in the Filter Graph and Pull Model.

Questa classe non deriva da CBasePin o implementa l'interfaccia IPin e alcuni dei nomi dei metodi si scontrano con IPin, quindi è preferibile usare come oggetto helper all'interno del pin. Per usare questa classe, eseguire le operazioni seguenti:

  1. Derivare una classe helper da CPullPine derivare una classe pin di input da CBasePin. Dichiarare un'istanza dell'oggetto CPullPin come variabile membro della classe pin.
  2. Eseguire l'override del metodo CBasePin::CheckConnect per chiamare CPullPin::Connessione. Questo metodo esegue una query sull'altro pin per IAsyncReader.
  3. Eseguire l'override del metodo CBasePin::BreakConnect per chiamare CPullPin::D isconnect.
  4. Eseguire l'override del metodo CBasePin::Active per chiamare CPullPin::Active. Questo metodo avvia un thread di lavoro che esegue il pull di campioni dal filtro upstream. Quando i pin si connettono, è possibile specificare se il thread di lavoro deve effettuare richieste di lettura asincrone o sincrone.
  5. Eseguire l'override del metodo CBasePin::Inactive per chiamare CPullPin::Inactive. Questo metodo arresta il thread di lavoro.
  6. Implementare il metodo CPullPin::Receive puro per elaborare i campioni in ingresso e recapitarli a valle.
  7. Per impostare le posizioni di arresto e avvio oppure per cercare il flusso, chiamare il metodo CPullPin::Seek . Questo metodo sospende il thread di lavoro e scarica il grafico del filtro.
  8. Implementare i metodi CPullPin::EndOfStream, CPullPin::BeginFlush e CPullPin::EndFlush , come descritto nelle osservazioni per tali metodi.
  9. Implementare il metodo CPullPin::OnError puro per gestire gli errori di streaming.
Variabili membro pubblico Descrizione
m_pAlloc Puntatore all'interfaccia IMemAllocator dell'allocatore di memoria.
Metodi pubblici Descrizione
Attivo Crea un thread di lavoro che estrae i dati dal pin di output.
AlignDown Tronca un valore a un limite di allineamento specificato.
AlignUp Arrotonda un valore fino a un limite di allineamento specificato.
Connessione Completa una connessione al pin di output.
CPullPin Metodo del costruttore.
~CPullPin Metodo distruttore. Virtuale.
DecideAllocator Negozia un allocatore con il pin di output. Virtuale.
Disconnetti Beaks la connessione con il pin di output.
Durata Recupera la durata del flusso.
GetReader Restituisce un puntatore all'interfaccia IAsyncReader del pin di output.
Inattivo Arresta il thread di lavoro che esegue il pull dei dati dal pin di output.
Seek Imposta le posizioni di inizio e arresto del flusso.
Metodi virtuali pure Descrizione
BeginFlush Informa il filtro proprietario per scaricare i filtri downstream.
EndFlush Informa il filtro proprietario per terminare un'operazione di scaricamento.
EndOfStream Chiamato dopo che l'oggetto fornisce l'ultimo esempio.
Onerror Chiamato se si verifica un errore durante lo streaming.
Ricevere Chiamato quando l'oggetto riceve un campione multimediale dal pin di output.

Requisiti

Requisito Valore
Intestazione
Pullpin.h (includere Flussi.h)
Libreria
Strmbase.lib (build retail);
Strmbasd.lib (build di debug)