Condividi tramite


Classe CBaseOutputPin

[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 cbaseoutputpin

La CBaseOutputPin classe è una classe base astratta che implementa un pin di output.

Questa classe deriva da CBasePin. È diverso da CBasePin nei seguenti aspetti:

  • Si connette solo ai pin di input che supportano l'interfaccia IMemInputPin .
  • Supporta il trasporto di memoria locale tramite l'interfaccia IMemAllocator .
  • Rifiuta le notifiche end-of-stream, flush e new-segment. Questi non devono essere inviati a un pin di output.
  • Fornisce metodi per la distribuzione di campioni downstream.

Quando il pin si connette, richiede un allocatore di memoria dal pin di input. In caso contrario, crea un nuovo oggetto allocatore. Il pin di output è responsabile dell'impostazione delle proprietà dell'allocatore. Questa operazione viene eseguita tramite il metodo virtuale puro CBaseOutputPin::D ecideBufferSize. Eseguire l'override di questo metodo nella classe derivata. Se il pin di input ha requisiti di buffer, vengono passati al metodo DecideBufferSize .

Chiamare il metodo CBaseOutputPin::GetDeliveryBuffer per ottenere un esempio multimediale vuoto. Chiamare il metodo CBaseOutputPin::D eliver per distribuire esempi downstream.

La classe derivata deve eseguire l'override del metodo CBasePin::CheckMediaType puro per convalidare il tipo di supporto durante le connessioni pin.

Variabili membro protette Descrizione
m_pAllocator Puntatore all'allocatore di memoria.
m_pInputPin Puntatore al pin di input connesso al pin.
Metodi pubblici Descrizione
CBaseOutputPin Metodo costruttore.
CompleteConnect Completa una connessione a un pin di input. Virtuale.
DecideAllocator Seleziona un allocatore di memoria. Virtuale.
GetDeliveryBuffer Recupera un esempio multimediale contenente un buffer vuoto. Virtuale.
Distribuzione Fornisce un esempio multimediale al pin di input connesso. Virtuale.
InitAllocator Crea un allocatore di memoria. Virtuale.
CheckConnect Determina se una connessione pin è adatta.
BreakConnect Rilascia il pin da una connessione.
Attivo Notifica al pin che il filtro è ora attivo.
Inactive Notifica al pin che il filtro non è più attivo.
DeliverEndOfStream Invia una notifica end-of-stream al pin di input connesso. Virtuale.
DeliverBeginFlush Richiede il pin di input connesso per avviare un'operazione di scaricamento. Virtuale.
DeliverEndFlush Richiede il pin di input connesso per terminare un'operazione di scaricamento. Virtuale.
DeliverNewSegment Invia una notifica di nuovo segmento al pin di input connesso. Virtuale.
Metodi virtuali pure Descrizione
DecideBufferSize Imposta i requisiti del buffer.
Metodi IPin Descrizione
BeginFlush Avvia un'operazione di scaricamento.
EndFlush Termina un'operazione di scaricamento.
EndOfStream Notifica al pin che non sono previsti dati aggiuntivi.

Requisiti

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